Иди по шагам — обычно виноват один из трёх пунктов.
**1. Убедись, что RDP вообще слушает** (на сервере через консоль/VNC):
```powershell
Get-NetTCPConnection -State Listen -LocalPort 3389 |
Select-Object LocalAddress, LocalPort, State
```
Если вывод пустой — служба TermService выключена или порт сбит. Подними:
```powershell
Start-Service TermService
Set-Service TermService -StartupType Automatic
```
**2. Убедись, что whitelist реально работает** (там же):
```powershell
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Where-Object { ($_ | Get-NetFirewallPortFilter).LocalPort -eq '3389' } |
Select-Object DisplayName
```
В списке должно быть **только** твоё whitelist-правило. Если пусто — ты вообще ничего не пускаешь, включая себя.
**3. Проверь с клиента**, доходит ли трафик:
```powershell
Test-NetConnection -ComputerName <IP_сервера> -Port 3389 -InformationLevel Detailed
```
- `TcpTestSucceeded : True` — порт доступен, проблема в пароле/NLA/учётке.
- `TcpTestSucceeded : False` — трафик не доходит (whitelist не тот IP, файрвол хостера, NAT не туда).
**4. Если пункт 3 True, но RDP всё равно не пускает:**
- Журнал `eventvwr.msc` → Безопасность → ищи события `4625` (неудачный вход) и `4740` (блокировка учётки).
- Если 4740 есть — учётка залочена, разблокируй в `compmgmt.msc`.
- Если 4625 нет — проблема до аутентификации (NLA, сертификат). Попробуй временно отключить NLA:
```powershell
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication' -Value 0
```
**5. Временный выход** (чтобы зайти и разобраться):
Включи встроенное правило RDP, зайди, поправь whitelist, выключи снова:
```powershell
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
```
После подключения проверь с клиента свой белый IP (2ip.ru / ifconfig.me) и сравни с тем, что прописано в правиле. Чаще всего это и есть причина — сменился внешний IP или ходишь через VPN/другую сеть.