В Windows 10/11 и Windows Server 2022/2019/2016 при подключении к серверу удаленных рабочих столов (RDS) используется UDP-порт 3389 в дополнение к стандартному RDP-порту TCP/3389. Когда ваш RDP-клиент подключается к серверу, создается несколько сеансов. Управляющий сеанс TCP (HTTP) используется для передачи команд клавиатуры и мыши, а несколько сеансов UDP — для передачи изображений удаленного рабочего стола.
Проверьте, использует ли ваш клиент MSTSC транспортный режим UDP, нажав кнопку Информация о подключении значок в верхней панели подключения RDP. В нашем случае используется протокол UDP.
The quality of the connection to the remote computer is excellent and UDP is enabled.
По мнению Microsoft, использование протокола UDP позволяет значительно улучшить отзывчивость сеанса Remote Desktop за счет уменьшения количества повторных передач и возможности работы через нестабильные соединения с высокой задержкой.
RDP-соединение зависает при использовании протокола UDP
В некоторых случаях использование протокола UDP для RDP-соединения может вызвать проблемы: периодическое зависание изображения, случайное отключение RDP-сессии, пользователи видят черный экран вместо удаленного рабочего стола и т. д. В таких случаях обычно помогает повторное подключение к сеансу RDP. Иногда эта проблема возникает часто и влияет на нормальную работу пользователя.
Возникает проблема с зависанием сеансов RDP:
- Если вы используете сеансы RDP внутри VPN-туннелей (обычно это происходит при использовании OpenVPN-сервера). Причиной этого является фрагментация UDP-пакетов. Это вызвано фрагментацией UDP-пакетов при их отправке через VPN-туннель (из-за различных настроек MTU);
- После обновления Windows 11/10 до сборки 22H2/22H2;
- При использовании шлюза удаленных рабочих столов на Windows Server 2022 и порта 3391 для UDP-трафика.
Как отключить протокол UDP в RDP
Чтобы решить проблему зависания сеансов RDP при использовании VPN-туннелей, можно попробовать отключить использование транспортного протокола UDP.
Вы можете отключить UDP в RDP с помощью групповой политики.
- Откройте локальную консоль редактора GPO (
gpedit.msc
); - Развернуть Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Хост сеанса удаленного рабочего стола -> Подключения;
- Включите политику Выберите транспортные протоколы RDP и установите значение Выбрать тип транспорта = Использовать только TCP;
- Перезапустите RDS/RDP-сервер, чтобы настройки вступили в силу;
- Снова подключитесь к RDP-серверу и щелкните значок Информация о подключении. Должно появиться следующее сообщение:
The quality of the connection to the remote computer is good.
Это означает, что для соединения RDP используется только TCP.
Этот метод позволяет отключить использование транспортного протокола UDP на стороне сервера RDP/RDS. Предположим, вы хотите отключить UDP для Remote Desktop на стороне клиента. В этом случае необходимо включить Отключение UDP на клиенте в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу.
После внесения изменений обновите параметры локальной политики с помощью команды gpupdate /force
и перезапустите клиент mstsc.exe.
Вы также можете включить эту опцию в реестре (политика GPO, упомянутая выше, соответствует fClientDisableUDP параметр реестра):
reg add "HKLM\software\policies\microsoft\windows nt\Terminal Services\Client" /v fClientDisableUDP /d 1 /t REG_DWORD
gpmc.msc
).