В современных версиях 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.
По утверждениям 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 трафика.
Причем проблема не связана с плохой производительностью RDS сервера как описано в кейсе по ссылке: на сервере достаточно свободных ресурсов, память и CPU не нагружены.
Отключить использование протокола UDP для RDP
Для решения проблемы с зависанием RDP сессий при использовании VPN туннелей вы можете попробовать отключить использование протокола UDP.
Можно отключить протокол UDP для RDP через групповые политики.
- Откройте консоль редактора локальной GPO (
gpedit.msc
); - Перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Remoter Desktop Services -> Remote Desktop Session Host -> Connections;
- Включите параметр политик Select RDP transport protocols и установите Select Transport Type = Use only TCP;
- Перезагрузите RDS/RDP сервер, чтобы применить настройки;
- Подключитесь к RDP серверу и нажмите на значок информации о подключении. Здесь должна появиться надпись:
The quality of the connection to the remote computer is good.
Это означает, что для 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.
После внесения изменений, нужно обновить локальные политики командой
gpupdate /force
и перезапустить клиент mstsc.exe.
Также можно включить этот параметр через реестр (параметр GPO соответствует ключу fClientDisableUDP в реестре):
reg add "HKLM\software\policies\microsoft\windows nt\Terminal Services\Client" /v fClientDisableUDP /d 1 /t REG_DWORD
При плохом качестве связи или неправильных настройках MTU, использование протокола UDP для RDP-подключения может вызывать проблемы: периодическое замирание картинки, обрывы RDP сессий, пользователи видят черных экран вместо удаленного рабочего стола, сообщение о внутренней ошибке при RDP подключении и т.п.
Проверить, используется ли UDP протокол, можно во время подключения к удалённому рабочему столу, нажав на пиктограмму качества соединения:
На стороне сервера запрет использования протокола UDP для RDP-подключений настраивается так:
- открываем редактор групповой политики: нажимаем клавиши Windows + R → вводим gpedit.msc → нажимаем кнопку Ok;
- в редакторе групповой политики переходим в раздел Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Подключения;
- открываем свойства политики Выбор транспортных протоколов RDP дважды нажав ЛКМ;
- устанавливаем переключатель на Включено;
- в выпадающем меню выбираем тип транспорта Использовать только TCP и нажимаем кнопку Ok;
- перезагружаем сервер.
На стороне клиента запрет использования протокола UDP для RDP-подключений настраивается так:
- открываем редактор групповой политики: нажимаем клавиши Windows + R → вводим gpedit.msc → нажимаем кнопку Ok;
- в редакторе групповой политики переходим в раздел Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Клиент подключения к удаленному рабочему столу;
- открываем свойства политики Отключение UDP на клиенте дважды нажав ЛКМ;
- устанавливаем переключатель на Включено и нажимаем кнопку Ok;
- перезагружаем компьютер.
В ОС Windows версии Home, редактор групповых политик отсутствует. Вместо его использования, можно изменить значение ключа реестра посредством командной строки.
Для этого в строку поиска на панели задач вбиваем cmd → нажимаем ПКМ на результате поиска и выбираем Запустить от имени администратора → в открывшееся окно копируем команду:
reg add «HKLM\software\policies\microsoft\windows nt\Terminal Services\Client» /v fClientDisableUDP /d 1 /t REG_DWORD
и нажимаем Enter. После этого компьютер перезагружать не требуется.
https://superuserdo.info/?p=910
Проблема:
При подключении по RDP к удаленному рабочему столу изображение периодически зависает, и помогает только переподключение.
Решение:
Отключение протокола UDP для RDP и принудительное использование TCP.
Проверка текущего протокола
Перед изменением настроек убедитесь, что RDP использует UDP:
-
Подключитесь к удаленному рабочему столу.
-
Нажмите на иконку «сети» в верхней части окна.
-
В информационном окне будет указано: «Протокол UDP включен».
Применимо для:
Windows 10 / Windows 11
Инструкция по отключению UDP для RDP
Шаг 1: Открываем «Редактор локальной групповой политики»
Способы запуска:
1. Способ: Через окно «Выполнить»
Нажмите Win + R (или ПКМ по Пуску → Выполнить).
Введите gpedit.msc → нажмите Enter или OK.
2. Способ: Через проводник
Перейдите по пути:
C:\Windows\System32\gpedit.msc
Если система установлена на другом диске, замените букву C: на вашу.
Шаг 2: Отключаем UDP на клиенте
Перейдите по пути:
Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Клиент подключения к удаленному рабочему столу
Найдите параметр «Отключение UDP на клиенте» → ПКМ → Изменить.
Установите «Включено» → Применить → OK
Шаг 3: Настраиваем использование только TCP
Перейдите по пути:
Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Подключения
Найдите параметр «Выбор транспортных протоколов RDP» → ПКМ → Изменить.
Установите:
«Включено».
В выпадающем списке параметров выберите «Использовать только TCP».
Нажмите Применить → OK.
Шаг 4: Перезагрузка и проверка
ВАЖНО!!! Перезагрузите компьютер.
После перезагрузки:
Подключитесь через RDP.
Нажмите на иконку сети → убедитесь, что сообщение о UDP не отображается.
In Windows 10/11 and Windows Server 2022/2019/2016, when connecting to a Remote Desktop (RDS) server, UDP port 3389 is used in addition to the default RDP port TCP/3389. When your RDP client connects to the server, multiple sessions are established. The TCP (HTTP) control session is used to transmit the keyboard and mouse commands, and several UDP sessions are used to send the Remote Desktop images.
Contents:
- RDP Connection Freezes When Using UDP Protocol
- How to Disable the UDP Protocol over RDP
Check your MSTSC client is using UDP transport mode by clicking the Connection Info icon in the top RDP connection bar. The UDP protocol is used in our case.
The quality of the connection to the remote computer is excellent and UDP is enabled.
According to Microsoft, the use of the UDP protocol can significantly improve the responsiveness of the Remote Desktop session by reducing the number of retransmissions and the ability to work over unstable, high-latency connections.
RDP Connection Freezes When Using UDP Protocol
In some cases, using the UDP protocol for an RDP connection can cause problems: periodic image freezing, random disconnection of an RDP session, users seeing a black screen instead of the Remote Desktop, etc. Reconnecting to the RDP session usually helps in these cases. Sometimes this problem occurs frequently and affects the user’s normal functioning.
The problem with RDP sessions freezing occurs:
- If you are using RDP sessions within VPN tunnels (commonly encountered when using an OpenVPN Server). The cause of this is a fragmentation of UDP packets. This is caused by fragmentation of UDP packets as they are sent through the VPN tunnel (caused by different MTU settings);
- After updating Windows 11/10 to 22H2/22H2 build;
- When using the Remote Desktop Gateway on Windows Server 2022 and port 3391 for UDP traffic.
Moreover, the problem is not related to poor performance of the RDS host, as described in the case at the link: the server has enough free resources, memory and CPU are not being used at a high rate.
How to Disable the UDP Protocol over RDP
To resolve the issue of RDP sessions freezing when using VPN tunnels, you can try disabling the use of the UDP transport protocol.
You can disable UDP over RDP via Group Policy.
- Open the local GPO editor console (
gpedit.msc
); - Expand Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections;
- Enable the policy Select RDP transport protocols and set Select Transport Type = Use only TCP;
- Restart the RDS/RDP server for the settings to take effect;
- Reconnect to the RDP server and click the Connection Information icon. The following message should appear here:
The quality of the connection to the remote computer is good.
This means that only TCP is used for the RDP connection.
This method allows you to disable the use of the UDP transport protocol on the RDP/RDS server side. Suppose you want to disable UDP for Remote Desktop on the client side. In that case, you need to enable the Turn off UDP on Client option under Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Connection Client.
After making changes, update the local policy settings using the gpupdate /force
command and restart the mstsc.exe client.
You can also enable this option in the registry (the GPO policy mentioned above corresponds to the fClientDisableUDP registry parameter):
reg add "HKLM\software\policies\microsoft\windows nt\Terminal Services\Client" /v fClientDisableUDP /d 1 /t REG_DWORD
Remote Desktop connection is the default application available in Windows 10 machine to access other windows machines remotely. In Windows 10 there is a issue where once you establish RDP connection to the machine the screen will freeze after some time randomly and you have to disconnect and re-connect the RDP session. To fix RDP connection freezes in Windows 10 you need to disable UDP protocol from RDP client using local Group Policy.
RDP uses both UDP and TCP protocols on port 3389. RDP protocol started using UDP from RDP v8 which was released in Windows 8 and Server 2012. The purpose of UDP is to make the connection faster and improve user experience. But in Windows 10, the RDP client freezes the screen randomly. This is most likely because of bug in Windows 10 which is unable to switch between TCP and UDP protocol seamlessly. This issue have been reported in Windows 10 version 1809 to 1903. Disabling the UDP protocol from local group policy fixes this issue.
Step 1. From the Windows 10 machine open Run application.
Step 2. Type gpedit.msc and click OK to open Local Group Policy Editor.
Step 3. Expand Computer Configuration > Administration Templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client. Double click the setting “Turn Off UDP On Client”. Choose Enabled option to enable this setting. Click Apply to apply the change.
Now you can open Remote Desktop connection application and start new session. This should fix the freezing issue.
The following two tabs change content below.
- Bio
- Latest Posts
Bipin is a freelance Network and System Engineer with expertise on Cisco, Juniper, Microsoft, VMware, and other technologies. You can hire him on UpWork. Bipin enjoys writing articles and tutorials related to Network technologies. Some of his certifications are, MCSE:Messaging, JNCIP-SEC, JNCIS-ENT, and others.