Подключение по протоколу RDP к удаленному серверу под управлением Windows Server 2012 R2 — одна из самых частых задач системного администратора. Однако периодически пользователи или администраторы сталкиваются со стандартным сообщением об ошибке: «Удаленному рабочему столу не удалось подключиться к удаленному компьютеру по одной из следующих причин...».
При этом эхо-запросы ping до узла могут проходить без потерь, что часто сбивает с толку. В этой статье мы подробно проанализируем возможные причины данной проблемы — от банальных ошибок в сетевых адресах до нюансов настроек безопасности NLA, TLS и кэша лицензирования.
Первое, с чего необходимо начать диагностику — убедиться, что подключение осуществляется именно к целевому серверу. Как показывает практика, сетевой адрес может успешно откликаться на команду ping, но при этом принадлежать совершенно другому устройству в сети (например, сетевому принтеру, роутеру или другой рабочей станции).
Разберем порядок действий для проверки:
mstsc.exe.hosts, расположенном по пути C:\Windows\System32\drivers\etc\hosts. Если в нем содержится устаревшая или ошибочная статическая запись, клиент будет обращаться не к тому узлу.nslookup, чтобы убедиться в корректной работе DNS.Успешное прохождение ICMP-пакетов (ping) подтверждает лишь базовую сетевую связность на сетевом уровне, но не гарантирует доступность конкретного сервиса. Служба удаленных рабочих столов по умолчанию принимает подключения на TCP-порту 3389.
Проанализируем доступность порта с помощью встроенного клиента Telnet или PowerShell:
telnet IP_адрес_сервера 3389.Test-NetConnection -ComputerName IP_адрес_сервера -Port 3389.При подключении с устаревших операционных систем (Windows XP, Windows 7 без пакетов обновлений) к современным серверам (Windows Server 2012 R2 и новее) часто возникают конфликты протоколов шифрования.
Рассмотрим, как устранить несоответствие версий:
mstsc.exe, нажмем на значок программы в левом верхнем углу и выберем пункт «О программе».KB3033929 для Windows 7). Без этого клиент не сможет проверить самоподписанный сертификат сервера Windows Server 2012 R2.По умолчанию на Windows Server 2012 R2 включено требование проверки подлинности на уровне сети — Network Level Authentication (NLA), а также используются протоколы шифрования TLS 1.1 и TLS 1.2.
Если устаревший клиент не поддерживает NLA или в системе отключен TLS 1.2, подключение сбросится до запроса логина и пароля. Для решения этой проблемы выполним следующие шаги:
RDP Security Layer.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols.На 32-битных клиентских системах нередко повреждается или блокируется кэш клиентских лицензий терминала (CAL). В этом случае сервер сбрасывает сессию в процессе рукопожатия.
Для сброса кэша лицензий выполним процедуру:
regedit от имени администратора.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing и полностью удалим раздел MSLicensing.mstsc.exe строго с правами администратора (через контекстное меню «Запуск от имени администратора») и выполним первое подключение к серверу, чтобы ветка реестра пересоздалась с правильными правами доступа.Начиная с версии RDP 8.0, клиент пытается передавать часть данных по протоколу UDP. Если сетевое оборудование или роутер некорректно обрабатывают или фрагментируют UDP-пакеты, подключение может зависать или завершаться ошибкой.
Чтобы перевести RDP-клиент в режим работы исключительно по протоколу TCP, проанализируем настройки групповой политики:
gpedit.msc.