В сучасних версіях Windows 10/11 та Windows Server 2022/2019/2016 при підключенні до сервера RDP (RDS) крім стандартного порту TCP/3389 додатково використовується UDP порт 3389. Коли ваш RDP клієнт підключається до сервера, встановлюється кілька RDP сесій. У керуючій TCP (HTTP) сесії передаються клавіатура і миша, а кілька UDP сесій використовуються передачі картинки.
Ви можете перевірити, чи використовує ваш клієнт mstsc режим UDP, якщо клацніть значок Connection Info у верхній смужці 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 трафіку.
Причому проблема не пов’язана з поганою продуктивністю сервера 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 і натисніть на піктограму підключення. Тут має з’явитися напис:
Це означає, що для підключення 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.
Наш канал – YouTube