Отключение и зависание RDP (удаленного рабочего стола) при использовании UDP протокола

Важным аспектом работы сисадмином является взаимодействие с RDP (Remote Desktop Protocol) и RSP (Remote Desktop Services) для ОС Windows, которые позволяют дистанционно управлять другим компьютером с помощью сети.

Для использования данных возможностей необходимо использовать сервер под управлением RDP. Исторически подключение к нему происходило, в основном, через TCP порт, по стандарту установленному на номер 3389. Однако в последних версиях операционных семейств семейства Windows, начиная с Windows 10 и Windows Server 2016, используется и UDP версия порта с номером, аналогичным TCP.

Их использование служит разным задачам: сессии, связанные с TCP портом, остающимся управляющим и основным, отведены под передачу команд устройств ввода, а сессии UDP отведены для передачи данных изображения. Такое разнесение функционала по разным портам, согласно Microsoft, улучшает работу с удалёнными рабочими столами при проблемах со стабильностью подключения или задержками, а также увеличивает отзывчивость управления в целом.

Одним из часто используемых для подключения к RDP-серверу клиентов является mstsc. Он также позволяет проверить использование UDP-подключения через нажатие на значок с полосками соединения вверху экрана, также называемым Connection Info. Если UDP подключение присутствует, то в конце надписи в диалоговом окне будет подписано «UDP is enabled».

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

Но использование UDP не всегда улучшает производительность и работоспособность удалённого рабочего стола. Проблемы с функционированием UDP-туннелей могут возникать по различным причинам. Среди них:

  • Недостаточная мощность устройства;
  • Некорректные обновленияи патчи на стороне Microsoft;
  • Некорректная работа VPN;
  • Использование порта 3391 для UDP совместно с шлюзом Remote Desktop Gateway.

Последствия зависаний и отключений из-за проблем UDP-порта хорошо заметны. Так как UDP отвечает за передачу изображения с удалённого рабочего стола, то оно начинает зависать, иногда экран и вовсе становится чёрным.

Часто, для решения проблемы достаточно переподключиться к серверу, но при слишком частых зависаниях стоит задуматься о долгосрочном решении проблемы. Одно из предлагаемых решений проблемы: например, попробовать продлить допустимое для системы время ожидания ответа по UDP командой /ip firewall connection tracking

set udp-timeout=20s. Если же это решение, смена VPN (при использовании), обновление на новые патчи Microsoft (или, напротив, откат на старые) не приносят результата, имеет смысл задуматься об отключении использования UDP-порта.

Отключение UDP-порта

Существует 2 подхода к отказу от использования UDP-порта. Запрет на его использование можно наложить как для сервера, так и для подключающегося клиента.

Для применения 1-го способа используется «Редактор групповых политик», также известный как утилита gpedit.msc.

В разделе «Конфигурация компьютера» следует последовательно переходить в подразделы

«Административные шаблоны» / Компоненты Windows / «Службы удаленных рабочих столов» / «Узел сеансов удалённых рабочих столов» / «Подключения».

Затем необходимо включить параметр «Выбор транспортных протоколов RDP» и изменить свойство «Выбор типа транспорта» как «Использовать только TCP».

turn on tcp

ВАЖНО! Это делает на компьютере к кому подключаемся, то есть сервер. Другим шагом будет отключить udp протокол на клиенте. То есть на компьютере с какого подключаемся.

turn off client

Для применения запрета удаленный рабочий стол необходимо перезапустить.

После перезапуска стоит опять нажать на Connection Info. Надпись на экране не должна содержать упоминаний UDP соединения, что означает, что нежелательный порт успешно отключен, единственным используемым портом RDP-сервера остаётся TCP.

Второй способ, отключение на стороне клиента, можно реализовать как через редактор групповых политик, так и через изменения реестра Windows.

  • При использовании редактора групповых политик: вместо раздела «Узел сеансов удалённых рабочих столов»необходимо перейти в подраздел «Клиент подключения к удалённому серверу»и найти параметр «Отключение UDP на клиенте», установив ему значение Далее, в командной строке Windows с правами администратора следует использовать утилиту gpupdate /force, позволяющую обновить групповые политики, осуществить перезапуск mstsc. Проверяем наличие подключения по UDP аналогично предыдущему способу.
  • При использовании реестра: использовать команду reg add «HKLM\software\policies\microsoft\windows nt\Terminal Services\Client» /v fClientDisableUDP /d 1 /t REG_DWORD, перезапустить клиент перед работой.

Заключение

Таким образом, использование UDP-порта современными операционными системами от Microsoft сильно улучшает опыт использования систем удалённого доступа, и его отключение крайне нежелательно. Но в некоторых ситуациях это остаётся единственным способом побороть критические для комфортной работы ошибки.

Ссылка на основную публикацию