Cómo mejorar el trabajo con Microsoft Remote Desktop

Quiero compartir algunos consejos sobre cómo configurar una conexión remota a estaciones de trabajo a través de RDP. Te diré cómo actualizar el antiguo RPC-HTTP a UDP, alabar y regañar a Windows 10 y AVC, encontraré una solución a varios problemas típicos.

Creemos que Remote Desktop Gateway (RDGW) se utiliza para la conexión, y las estaciones de trabajo actúan como servidores. Usar RDGW es muy conveniente porque la puerta de enlace se convierte en un punto de entrada común para todos los clientes. Esto permite controlar mejor el acceso, mantener registros de las conexiones y su duración. Incluso si la VPN le permite conectarse directamente a máquinas en funcionamiento, esta no es la mejor opción.

RDGW es rápido, fácil de configurar y Let's Encrypt y win-acme resuelven fácilmente el problema con un certificado de confianza.

Hay tres protocolos de transporte a través de los cuales el cliente puede conectarse al servidor:

RPC-HTTP ( malo )
HTTP ( mejor )
HTTP + UDP ( excelente )

Por servidor nos referimos a una máquina que funciona, por un cliente - hogar.
Lo primero para comenzar es convertir "malo" en "excelente".

Actualizar RPC-HTTP a HTTP


La conexión a una sesión usando RPC-HTTP es fácil de determinar por la apariencia de la tira de conexión.



No hay un ícono de calidad de conexión (más abajo), lo que significa que estamos usando el viejo RPC envuelto en TLS, esto es muy lento. El punto, por supuesto, no está solo en el contenedor: el protocolo en sí cambia con cada versión del sistema operativo, los códecs y los algoritmos de empaquetado de imágenes cambian. Cuanto más fresco sea el protocolo, mejor.

¿Qué hacer?

Windows XP o Vista


En XP, puede elevar el protocolo de 5.1 a 7. El hotfix windowsxp-kb969084-x86.exe.

En Vista, de 6 a 7. El hotfix tiene el mismo número, los archivos windows6.0-kb969084-x64.msu o Windows6.0-KB969084-x86. .msu

Pero RDP 7 no funciona sobre HTTP y UDP. Solo actualizar el cliente y el servidor a Windows 7 y más tarde será de ayuda.

Windows 7

Primero debe actualizar el protocolo a RDP 8.1 y luego habilitarlo. El soporte se agrega mediante actualizaciones que se agrupan en un solo paquete de descarga:

www.microsoft.com/en-US/download/details.aspx?id=40986
Windows6.1-KB2574819-v2-x64.msu
windows6.1-kb2592687-x64.msu
Windows6.1-KB2830477-x64.msu
Windows6.1-KB2857650-x64.msu
Windows6.1-KB2913751-x64.msu (reemplazado por kb2923545)

windows6.1-kb2923545-x64.msu

Para que obtenga el cliente mstsc.exe nuevo y la compatibilidad con RDP 8.1 para el lado del servidor del sistema operativo.
Fue: se





convirtió en:



después de eso, el protocolo debe activarse con la clave de registro (para esto puede usar la plantilla adm incluida con Windows 7).

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001

Habilite el soporte de transporte UDP en la directiva de grupo.



Reiniciamos el servidor con Windows 7. El mismo caso cuando es posible que deba reiniciar dos veces: el valor en el registro debe establecerse antes de que se active RDP, y la Política de grupo se aplica más tarde.

Si todo funcionó , cuando se conecte al servidor, aparecerá un icono de calidad de conexión (como en un teléfono para una red móvil) en la barra de sesión:



Windows 8 y posterior. El

protocolo funciona de fábrica.

Actualizar HTTP a HTTP + UDP


Si su red no es propensa a la pérdida de paquetes, UDP dramáticamente (para CAD - drásticamente) mejora la capacidad de respuesta del servidor al usar FEC para reducir la retransmisión, así como al cambiar la confirmación de entrega de paquetes de la pila del sistema TCP / IP al nivel de protocolo RDP-UDP.

Se conecta una sesión de control principal a través de HTTP desde cada cliente (también se transmite un teclado / mouse en este canal), más una o más sesiones UDP para transmitir una imagen u otros canales virtuales.

Solo tocaremos la punta del iceberg. Hay 3 versiones diferentes del protocolo RDP-UDP. Además, UDP puede funcionar en dos modos: UDP-R (confiable) y UDP-L (con pérdida). Nada pasa simplemente con Microsoft. Pero como nada depende de nosotros aquí, solo tenga en cuenta: cuanto más nuevo es el sistema operativo, el tema utiliza un protocolo más moderno.

En el exterior, RDP-UDP está envuelto en Datagram Transport Layer Security (DTLS) RFC4347, como puede ver abriendo Wireshark.

Más detalles en los documentos:
[MS-RDPEMT]: Protocolo de escritorio remoto: Extensión
de transporte múltiple [MS-RDPEUDP]: Protocolo de escritorio remoto: Extensión de transporte UDP
[MS-RDPEUDP2]: Protocolo de escritorio remoto: Extensión de transporte UDP Versión 2
Donde sea incorrecto, correcto de nada.

¿Qué necesitas para habilitar UDP?

RDP-UDP es compatible a partir de RDP 8.

El puerto udp / 3389 debe estar abierto en el cliente. Si lo cerró con un firewall local, ACL en el conmutador o un firewall externo, el puerto debe estar abierto.

Para el servidor de Remote Desktop Gateway al puerto tcp / 443, abra udp / 3391.

El puerto se puede cambiar, así es como está configurado:



para Windows 7, NLA (Autenticación de nivel de red) debe estar habilitado.



Se puede habilitar en la directiva de grupo



o mediante el registro

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"SecurityLayer"=dword:00000001

Cuál es la conexión no está clara. Pero sin NLA en 7-ke no funciona, en versiones más recientes de NLA para trabajo UDP no es necesario.

Después de establecer una sesión a través de HTTP, el cliente y el servidor intentan negociar una conexión UDP. Si hay pérdida o retraso de paquetes, la sesión UDP no se iniciará. El algoritmo exacto de falla de negociación UDP no se entiende completamente.

Si todo está configurado, luego de conectarse, haga clic en el botón de calidad del enlace. La ventana indicará que UDP se negocia.



En la puerta de enlace, se ve así:



Windows 10

Si tiene Windows 10 tanto en el servidor como en el cliente, esta es la opción más rápida y sin problemas. Microsoft está finalizando activamente RDP, y en las últimas versiones 10 puede contar con una buena velocidad. Los colegas no pudieron detectar la diferencia entre Citrix y Windows 10 RDP en la velocidad de AutoCAD.

Hay un buen artículo sobre la evolución de los códecs RDP basados ​​en AVC en Windows 10
Remote Desktop Protocol (RDP) 10 AVC / H.264 Las mejoras AVC / H.264 en Windows 10 y Windows Server 2016 La vista previa técnica de

AVC con codificación de hardware se puede ver en el registro de eventos (consulte el artículo anterior para obtener más detalles) ):





Solo noto que todavía hay un problema de distorsión incluso con h.264 4: 4: 4. Inmediatamente te llama la atención si trabajas en PowerShell ISE: el texto del error se muestra con una distorsión desagradable. Además, todo está bien en la captura de pantalla y en la foto. Magia.

También un signo indirecto del trabajo de AVC de vez en cuando aparecen cuadrados verdes en las esquinas.

AVC y la codificación de hardware en versiones nuevas deberían funcionar de forma inmediata, pero la política de grupo nunca es superflua:



dado que AVC está codificada en hardware con una tarjeta de video, es una buena idea actualizar los controladores de video.

Acerca de los problemas


XP y Vista

Si el problema ocurre en Windows XP o Vista, intente actualizar primero el protocolo a la versión 7 (escrito al principio del artículo). Asegúrese de habilitar el soporte de CredSSP. Microsoft ya ha eliminado artículos en el sitio, pero Internet lo recuerda .

Si no ayuda, "el médico habla a la morgue, luego a la morgue". Lo que el sistema operativo ha experimentado en los últimos 15 años es mejor ni siquiera pensarlo.

NLA

A veces ayuda a deshabilitar NLA en el servidor. No funcionó la causa, los autos caseros son todos diferentes.

NTLM

Algunos clientes intentan iniciar sesión con NTLMv1. Los motivos son diferentes, pero puede solucionarlo en el cliente de esta manera:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LmCompatibilityLevel"=dword:00000003

Se requiere reiniciar.

Si es joven y no tiene miedo de nada, entonces hay una solución más radical: deshabilitar la vinculación de canales en la puerta de enlace de escritorio remoto

HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core
Type: REG_DWORD
Name: EnforceChannelBinding
Value: 0 (Decimal)

No tienes que hacer esto. Pero lo hicimos. :-) Para un cliente que insistió (no está mal, insistió) que NTLMv1 en las estaciones de trabajo que necesitaba. No sé, tal vez hay servidores en NT4 sin SP todavía en funcionamiento.

Deshabilitar RDP 8+ en Windows 10

Si todo lo demás falla y las ideas se agotan, puede usar la clave no documentada para degradar el protocolo RDP a la versión 7.

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]
"RDGClientTransport"=dword:00000001

No lo hice yo mismo y no te aconsejo. Pero para alguien, escriben que ayuda.

El

componente DrWeb Dr.Web SpIDerGate puede prohibir la conexión. En este caso, se devuelve un error:

en las estadísticas de Dr.Web habrá una entrada:

en los comentarios de este artículo, un empleado de Dr.Web me contactó y nuestro problema se resolvió en la próxima actualización de las bases de datos antivirus.
Si tiene el mismo error, es mejor contactar al soporte.
Como solución temporal, puede agregar la URL de su RDGW a las excepciones:

y solo si no ayudó a deshabilitar completamente el componente SpIDer Gate .

Proxy del sistema

Conocí una computadora fuera de servicio de alguna compañía donde un TMG local estaba registrado como un proxy del sistema y la conexión a RDGW no funcionaba. Esto se puede solucionar así:

netsh winhttp show proxy && netsh winhttp reset proxy

Cambiar diseños de teclado

A veces vienen diseños adicionales. Puede deshabilitar el reenvío de diseño desde el cliente
[HKLM\System\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

Problemas de DPI El

escalado proviene de la máquina del cliente, y si cuesta 125% en una computadora portátil doméstica, será lo mismo en una máquina que funcione. En los servidores, esto se puede desactivar, pero en las estaciones de trabajo no pude encontrar cómo. Pero la tienda de aplicaciones de Windows 10 tiene un cliente "moderno" .

Puede configurar DPI en él:



Cómo monitorear una puerta de enlace con RDGW


Hay un contador de rendimiento "Puerta de enlace TS \ Conexiones actuales", que es un poco defectuoso si no hay conexiones o si el servidor no se ha reiniciado durante mucho tiempo. Muestra exactamente el número de conexiones, pero como recordamos, para HTTP + UDP hay al menos dos, y tal vez más. Por lo tanto, este no es un indicador completamente objetivo del número de conexiones de los empleados.

Hay una clase WMI Win32_TSGatewayConnection. Su contenido corresponde a lo que ve en la sección Supervisión de la Puerta de enlace de escritorio remoto.

Con él, el número de conexiones se puede calcular con mayor precisión:

Get-WmiObject -class "Win32_TSGatewayConnection" -namespace "root\cimv2\TerminalServices" 
|?{$_.transportprotocol -ne 2}|select username,connectedresource|sort username|Get-Unique -AsString| measure|select -ExpandProperty count

Solo por diversión, hay una utilidad Analizador de pantalla remota . La versión gratuita no me mostró nada útil, pero de repente será útil para alguien.

Pero, ¿qué pasa con el ajuste fino, ajustando unas pocas docenas de parámetros de sesión?

El principio de Pareto es apropiado aquí: el 20% de los esfuerzos rinden el 80% del resultado. Si está listo para invertir su tiempo en el 20% restante del resultado, excelente. Solo tenga en cuenta que cuando lee un artículo sobre la configuración de un protocolo en Windows 7, no sabe sobre qué protocolo escribió el autor: 7, 8 u 8.1. Cuando lee sobre Windows 10 sin especificar una versión, los problemas son los mismos. Por ejemplo, escriben que en versiones nuevas de Windows 10, el códec AVC / h.264 ha cambiado a RDPGFX_CODECID_AVC444 V2 , y en Windows Server 2016, RDPGFX_CODECID_AVC444 permanece.

De todos estos consejos, usamos solo dos configuraciones:

  1. Color de 16 bits, puede leerlo en el artículo Rendimiento de MS RDP / Uso de ancho de banda
  2. Deshabilitar suavizado de fuente suavizado de fuente: i: 0 en el artículo anterior o Hosts de sesión de escritorio remoto de optimización de rendimiento

Dudo que den un resultado tangible.

Así que hemos llegado al final del artículo. Quería ser más bajo, pero resultó como siempre. Me alegra que estos consejos ayuden a alguien a ahorrar tiempo o mejorar la configuración de su infraestructura.

All Articles