Замирает/отключается RDP сессия при использовании UDP транспорта

Замирает/отключается RDP сессия при использовании UDP транспорта

В современных версиях Windows 10/11 и Windows Server 2022/2019/2016 при подключении к серверу RDP (RDS) кроме стандартного порта TCP/3389, дополнительно используется UDP порт 3389. Когда ваш RDP клиент подключается к серверу, устанавливается несколько сессий. В управляющей TCP (HTTP) сессии передаются клавиатура и мышь, а несколько UDP сессий используются для передачи картинки.

Вы можете проверить, использует ли ваш клиент mstsc режим UDP, если щелкните по значку Connection Info в верхней полоске RDP подключения. В нашем случае протокол UDP используется:

The quality of the connection to the remote computer is excellent and UDP is enabled.

Для RDP подключений используется протокол UDP

По утверждениям Microsoft использование UDP для RDP сессий позволяет существенно повысить отзывчивость удаленного рабочего стола за счет сокращения ретрансмиссии и возможности работать на нестабильных подключениях с высокими задержками.

Зависание RDP сессий при использовании UDP

В некоторых случаях использование протокола UDP для RDP подключения может вызывать проблемы: периодическое замирание картинки, обрывы RDP сессий, пользователи видят черных экран вместо удаленного рабочего стола, сообщение о внутренней ошибке при RDP подключении и т.д. В таких случаях обычно помогает переподключение к RDP сессии. Но иногда такая проблема происходит очень часто и мешает нормальной работе.

Проблема с замиранием RDP сессий встречается:

  • При использовании RDP сессий внутри VPN туннелей ( чаще всего наблюдается при использовании сервера OpenVPN). Это вызывается фрагментированием UDP пакетов (может быть вызвано разными настройками MTU) при пересылке через VPN туннель;
  • После обновления до билда 22H2 в Windows 11/10;
  • При использовании шлюза Remote Desktop Gateway на Windows Server 2022 и порта 3391 для UDP трафика.

Отключить использование протокола UDP для RDP

Для решения проблемы с зависанием RDP сессий при использовании VPN туннелей вы можете попробовать отключить использование протокола UDP.

Можно отключить протокол UDP для RDP через групповые политики.

  1. Откройте консоль редактора локальной GPO (
    gpedit.msc
    );
  2. Перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remoter Desktop Services -> Remote Desktop Session Host -> Connections;
  3. Включите параметр политик Select RDP transport protocols и установите Select Transport Type = Use only TCP; RDP сервер - использовать только TCP порт
  4. Перезагрузите RDS/RDP сервер, чтобы применить настройки;
  5. Подключитесь к RDP серверу и нажмите на значок информации о подключении. Здесь должна появиться надпись:
    The quality of the connection to the remote computer is good.

    Для RDP подключения используется только TCP

Это означает, что для RDP подключения используется только TCP.

Этот способ позволяет отключить использование UDP на стороне сервера RDP/RDS. Если вы хотите запретить использовать UDP для RDP на стороне клиента, нужно включить параметр Turn off UDP on Client в разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remoter Desktop Services -> Remote Desktop Connection Client. Параметр политик - отключить UDP на клиенте Turn off UDP on Client

После внесения изменений, нужно обновить локальные политики командой
gpupdate /force
и перезапустить клиент mstsc.exe.

Также можно включить этот параметр через реестр (параметр GPO соответствует ключу fClientDisableUDP в реестре):

reg add "HKLMsoftwarepoliciesmicrosoftwindows ntTerminal ServicesClient" /v fClientDisableUDP /d 1 /t REG_DWORD

Windows 11
Замирает/отключается RDP сессия при использовании UDP транспорта