Назад | Перейти на главную страницу

Windows Server 2012 - RDP через UDP не работает

У меня есть компьютер с Windows Server 2012 (не R2), размещенный в среде виртуализации Hyper-V с установленным узлом сеансов удаленных рабочих столов и шлюзом удаленных рабочих столов. Он используется для запуска настольного ГИС-приложения.

Производительность по WAN довольно низкая. Я добавил порт UDP в NAT, чтобы повысить производительность, но соединение UDP по-прежнему не используется.

В среде тестирования LAN (во избежание неправильной конфигурации NAT / брандмауэра) я подключаюсь с машины Win10. Панель информации о подключении показывает "отличное качество", но ничего не упоминает об UDP. В случае обратного подключения (Windows Server => Windows 10) в информационной панели подключения указано, что UDP включен.

Я полностью отключил брандмауэр Windows, установленный на Windows Server. Я дважды проверил, включен ли транспорт UDP в шлюзе удаленных рабочих столов. Нет никакой разницы, подключаюсь я через шлюз (443 + 3391) или прямой (3389 + 3389). Я дважды перезапустил всю машину и пролистал все ссылки на первых трех страницах результатов Google.

Вы хоть представляете, что может быть не так?

Подозреваю ошибку маршрутизации. Запустите wirehark, чтобы убедиться, что UDP-пакет получен. Как я видел, это через WAN, маршрутизатор обычно плохо пропускает пакеты.

1.5 Предпосылки / предварительные условия

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

Предварительные требования для этого протокола идентичны требованиям для протокола UDP.

1.3.2.1

Инициализация соединения UDP. На этом этапе обе конечные точки инициализируются с взаимно согласованными параметрами соединения. Терминальный клиент инициирует соединение, отправляя дейтаграмму SYN. Терминальный клиент также определяет режим работы, RDP-UDP-R или RDP-UDP-L, как описано в разделе 1.3.1. Терминальный сервер отвечает датаграммой с установленным флагом SYN вместе с флагом ACK, чтобы подтвердить получение дейтаграммы SYN. Терминальный клиент подтверждает дейтаграмму SYN, отправляя ACK. Терминальный клиент может добавлять закодированные пакеты вместе с дейтаграммой ACK. Эта дейтаграмма указывает на то, что соединение установлено и можно обмениваться данными. Все дейтаграммы на этом этапе - SYN, SYN + ACK и ACK - надежно доставляются с помощью постоянных повторных передач, независимо от режима, в котором работает транспорт.

Я довольно долго гонялся за этой проблемой и не смог найти решения в другом месте. Та же ситуация, что и у вас, подключение напрямую к серверу RDS не работает с транспортом UDP. UDP 3391 прослушивал и не блокировал брандмауэр. Другие серверы без RDS работали с транспортом UDP.

Настроил следующий объект групповой политики, запустил gpupdate /target:Computer /force, и вуаля, все работает.

Устанавливать Computer Configuration > Remote Desktop Services > Remote Desktop Session Host > Security > Require use of specific security layer for remote (RDP) connections включить (SSL)

Вы проверили, может ли UDP проходить через хост-сервер Hyper-v?

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