У меня есть компьютер с 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, которые могут быть отключены.