¿Las sesiones RDP desde macOS hacia Windows Server 2022 se cortan cada pocos minutos, forzando a reautenticar con MFA? Aquí tienes una guía práctica, con solución confirmada, pasos de diagnóstico y configuraciones que estabilizan la conexión.
Resumen del caso
En varios entornos se observa que RDP desde macOS hacia Windows Server 2022 se interrumpe aproximadamente cada 3–10 minutos. El servidor no muestra errores evidentes y la sesión no se cierra por completo, pero el corte es suficiente para provocar la reautenticación (MFA). En el Remote Desktop de Mac, el registro enseña mensajes como connMonitor goto CMSTATE_DROPPED (total-missed=5)
y fallos de canales virtuales.
Solución confirmada en el caso reportado
Causa raíz: pérdida de paquetes generada por un cable de red defectuoso en el trayecto.
Acción: sustituir el cable resolvió por completo las caídas.
Aunque parezca simple, la capa física (cableado, conectores, puerto de switch) es el origen más frecuente de microcortes que RDP detecta como pérdida de latidos. Empieza por ahí antes de tocar configuraciones complejas.
Por qué se nota más con Windows Server 2022
Desde hace varias versiones, RDP intenta usar RDP-UDP además de TCP en cuanto está disponible: mejora la interactividad, pero también es menos tolerante a redes con filtrado, NAT con temporizadores agresivos, VPNs con MTU ajustado o pérdida de paquetes. En algunos entornos, Windows Server 2019 terminaba funcionando casi siempre sobre TCP; con 2022, el uso de UDP suele activarse con más facilidad, por lo que una red “justita” exhibe más inestabilidad. Conclusión: el problema no es 2022 en sí, sino condiciones de red que se vuelven más visibles cuando entra en juego UDP.
Guía de diagnóstico paso a paso
Aísla si es red o servidor
- Conéctate por RDP al localhost desde el propio servidor 2022.
mstsc.exe /v:127.0.0.1
- Si es estable durante 15–30 minutos, el problema está en la red (cableado, switch, NIC, VPN, MTU, firewall, NAT).
- Si también cae, revisa recursos del servidor (CPU/RAM), actualizaciones y servicios RDS.
Fuerza TCP y desactiva UDP (servidor 2022)
Útil cuando sospechas pérdida/filtrado de UDP o NAT con temporizadores cortos.
- Directiva de grupo (gpedit.msc):
- Equipo → Plantillas administrativas → Servicios de Escritorio remoto → Cliente de conexión → Desactivar UDP en el cliente = Habilitada.
- Equipo → Plantillas administrativas → Servicios de Escritorio remoto → Host de sesión de Escritorio remoto → Conexiones → Seleccionar los protocolos de transporte de RDP = Habilitada → Usar solo TCP.
- Registro (alternativa a GPO):
REM Desactivar UDP en el cliente RDP reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" ^ /v DisableUDPOnClient /t REG_DWORD /d 1 /f REM Forzar solo TCP en el servidor (0=ambos, 1=TCP, 2=UDP) reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" ^ /v SelectTransport /t REG\_DWORD /d 1 /f
Si al forzar TCP la sesión se estabiliza, ya has confirmado una causa de red ligada a UDP (MTU, NAT, filtrado, QoS, VPN, etc.). A partir de ahí, corrige de raíz y, si conviene, vuelve a habilitar UDP.
Actualiza y ajusta el cliente en macOS
- Instala la última versión de Microsoft Remote Desktop para Mac.
- En Preferencias → Avanzado/Gráficos:
- Reduce calidad y desactiva efectos (animaciones, fondos).
- Activa cachés de mapa de bits.
- Si tienes varios monitores, prueba con uno solo y escala 100%.
Revisa MTU y VPN
Las VPN añaden encapsulación y reducen el MTU efectivo. Paquetes RDP-UDP fragmentados se pierden con facilidad en ciertos túneles.
- Windows (comprobación rápida MTU con ping):
REM Empieza probando 1472 (MTU 1500 - 28 bytes IP/ICMP) ping -f -l 1472 8.8.8.8 REM Si falla (fragmentación), baja el tamaño, por ejemplo: ping -f -l 1400 8.8.8.8
Encuentra el mayor tamaño que no fragmenta y suma 28 para estimar la MTU. Ajusta la interfaz si es necesario:netsh interface ipv4 show subinterfaces netsh interface ipv4 set subinterface "Ethernet" mtu=1400 store=persistent
- macOS:
- Prueba con tamaños de carga crecientes y observa pérdida:
# En macOS, -s define los bytes de carga ICMP ping -i 0.2 -s 1200 <IP_remota> ping -i 0.2 -s 1400 <IP_remota>
- Para ensayar un MTU menor de forma temporal (cuidado, requiere permisos):
# Sustituye "Ethernet" o "Wi-Fi" por el nombre del servicio de red networksetup -listallnetworkservices sudo networksetup -setMTU "Ethernet" 1400 Para restaurar: sudo networksetup -setMTU "Ethernet" 1500
- Prueba con tamaños de carga crecientes y observa pérdida:
- En la VPN: ajusta el MTU/fragmentación según el proveedor; activa PMTUD si existe opción y evita filtrar ICMP necesarios para descubrir MTU.
Comprueba la capa física y puertos
- Cambia el cable entre Mac y switch (o entre servidor y switch), y prueba otro puerto.
- Revisa contadores de errores/CRC:
- Windows:
Get-NetAdapterStatistics
y el registro de la NIC. - macOS:
netstat -ib
oifconfig
para detectar Ierrs/Oerrs. - Switch: mira errores, descartes, flapping y negociaciones dúplex/velocidad.
- Windows:
- Si usas Wi‑Fi, prueba por Ethernet directa para descartar ruido/interferencias.
Capacidad de la VM/host (si aplica)
- En VMs muy ajustadas, sube RAM y limita efectos gráficos en el cliente.
- Evita picos de CPU coincidiendo con los cortes (antivirus, backups, snapshots).
Cómo interpretar el log del cliente de Mac
El registro del cliente de macOS es oro para detectar la causa. A continuación, un “descodificador” rápido:
Entrada de log | Qué significa | Qué hacer |
---|---|---|
connMonitor goto CMSTATE_DROPPED (total-missed=5) | El monitor de conexión perdió varios latidos/paquetes. Pérdida de red o latencia/jitter. | Descarta capa física (cable/puerto), revisa MTU/VPN, fuerza TCP para probar. |
Channel::StartWrite failed | Fallo al escribir en un canal virtual, típico tras un corte en el transporte. | Busca pérdidas/fragmentación. Si UDP está activo, prueba TCP. |
SendDevicesPacket(...) failed | Interrupción de dispositivos redirigidos por canal virtual. | Reduce redirecciones y efectos; apunta a problemas de transporte subyacentes. |
Checklist exprés
- [ ] Cambiar cable/puerto y probar sin VPN.
- [ ] RDP a
localhost
en el servidor para descartar problema local. - [ ] Actualizar RD Client para Mac y simplificar gráficos.
- [ ] Desactivar UDP y forzar TCP por GPO en el servidor 2022.
- [ ] Ajustar MTU si hay VPN y comprobar pérdidas con ping sostenido.
Matriz de decisión rápida
Si observas… | Entonces | Acción recomendada |
---|---|---|
Cortes sólo al conectarte desde fuera/VPN | MTU reducido o NAT/UDP con tiempo de espera corto | Baja MTU efectiva (p. ej., 1400), habilita TCP-only temporal, ajusta temporizadores del túnel |
Cortes tanto por Wi‑Fi como por Ethernet del Mac | Problema del lado servidor/switch central | Prueba RDP a localhost en el servidor; revisa switch/NIC del servidor |
Estabilidad inmediata al forzar TCP | Causa ligada a UDP | Corregir MTU/filtrado/temporizadores; mantener TCP-only hasta resolver |
Errores/CRC en contadores de NIC | Fallo físico (cable/puerto) | Sustituye cable/puerto; verifica negociación 1G/Full dúplex |
Cortes cada 5–10 min casi exactos | Keepalive/timeout en NAT/Firewall, especialmente UDP | Aumenta timeouts de UDP o fuerza TCP; habilita “session persistence” |
Configuraciones útiles (detalle)
Directivas y Registro para transporte RDP
Si gestionas varios servidores, aplica GPO a la OU que incluye los hosts 2022. Para pruebas rápidas, usa los valores de Registro:
:: Cliente RDP (Windows) - desactivar UDP
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" ^
/v DisableUDPOnClient /t REG_DWORD /d 1 /f
\:: Servidor RDP 2022 - forzar TCP (0=ambos, 1=TCP, 2=UDP)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" ^
/v SelectTransport /t REG\_DWORD /d 1 /f
\:: Ver estado actual (PowerShell)
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" |
Select-Object SelectTransport
Comprobaciones de red en Windows
# Estadísticas por adaptador
Get-NetAdapterStatistics
MTU por interfaz
netsh interface ipv4 show subinterfaces
Latencia/pérdida sostenida hacia el servidor
ping -t \
Trazado de ruta para detectar saltos problemáticos
tracert \
Comprobaciones de red en macOS
# Listar interfaces y errores
ifconfig
netstat -ib
Ping sostenido con intervalo corto
ping -i 0.2 -s 1200 \<IP\_servidor>
Revisar logs de Microsoft Remote Desktop (Aplicación → Logs)
Filtra por "connMonitor", "StartWrite failed", "SendDevicesPacket"
Causas comunes y cómo verificarlas
Causa | Cómo la detectas | Arreglo recomendado |
---|---|---|
Cable de red defectuoso / conector flojo | Pérdida intermitente; contadores CRC/Ierrs; al mover el cable empeora | Sustituye el cable (Cat6 o mejor), revisa conectores y patch-panel |
Puerto de switch dañado/auto‑negociación incorrecta | Errores en un puerto concreto; flapping de velocidad | Cambia de puerto; fija 1 Gbps Full dúplex si la auto‑negociación falla |
MTU insuficiente (especialmente con VPN) | Ping grandes fallan; message too long; caídas al transferir gráficos | Reduce MTU efectivo (p. ej., 1400), habilita PMTUD o permite fragmentación en el túnel |
Filtrado o inspección de UDP 3389 | TCP estable y UDP inestable; se corrige al forzar TCP | Permite RDP-UDP en firewall, ajusta QoS o deja TCP-only |
Timeout agresivo de UDP en NAT | Cortes cíclicos cada X minutos exactos | Aumenta el timeout de UDP o desactiva NAT para ese flujo; como mitigación, usa TCP |
Host/VM con recursos justos | Picos de CPU/RAM durante el corte | Asigna más recursos; reduce efectos visuales desde el cliente |
Wi‑Fi saturado/interferencias | Ethernet estable, Wi‑Fi inestable | Usa Ethernet para sesiones sensibles o mejora el AP/canal |
Buenas prácticas para minimizar cortes de RDP
- Primero la física: cable y puerto. Es la solución más rápida y barata.
- Observabilidad: monitoriza pérdida, jitter y latencia a 1–5 s de intervalo hacia el servidor.
- Diseño de VPN: ajusta MTU, evita encapsular sobre redes con filtros ICMP, y alarga timeouts de UDP.
- QoS: prioriza 3389/TCP y 3389/UDP si la red está congestionada.
- Hardening sin romper UDP: si filtras, documenta reglas específicas para RDP-UDP y prueba desde zonas distintas.
- Plan B: permite TCP-only como política temporal para mantener la operativa mientras corriges la red.
FAQ (preguntas rápidas)
¿Por qué la sesión no se cierra pero me pide MFA otra vez?
Porque el transporte sufre un corte breve: RDP intenta reanudar, pero algunas pasarelas/NLA/MFA obligan a reautenticación si el hueco supera cierto umbral.
¿Desactivar UDP es seguro?
Sí. Pierdes algo de suavidad en condiciones ideales, pero ganas estabilidad en redes problemáticas. Debe verse como una mitigación temporal, no necesariamente permanente.
¿Por qué con Windows Server 2019 no pasaba?
Probablemente funcionaba mayoritariamente sobre TCP en tu entorno o el patrón de tráfico no disparaba el problema latente. Al habilitarse UDP con 2022, la red deficiente se hace evidente.
¿El problema puede estar en el Mac?
Puede estarlo (driver, Wi‑Fi, VPN, versión del cliente). Actualiza Remote Desktop para Mac, simplifica gráficos y prueba por Ethernet directa.
Pasos recomendados (resumen ejecutable)
- Cambia el cable y el puerto del equipo que sufre los cortes. Revisa contadores de errores.
- Prueba RDP a localhost desde el servidor 2022. Si es estable, céntrate en la red.
- Fuerza TCP temporalmente con GPO/Registro. Si se estabiliza, ya sabes que es algo de UDP/MTU/NAT.
- Ajusta MTU si usas VPN o si detectas fragmentación; valida con pings sostenidos.
- Optimiza el cliente Mac: actualiza, baja efectos, habilita cachés.
Qué aprender del caso
Un corte de RDP no siempre es un “problema del servidor”. En el caso real que originó esta guía, la causa fue tan prosaica como un cable defectuoso. Cambiarlo acabó con semanas de molestias. Cuando el síntoma te recuerde a “CMSTATE_DROPPED” o a canales virtuales que “no escriben”, piensa primero en pérdida de paquetes. Y si la red es compleja o hay VPN, recuerda que UDP es rápido pero más sensible: TCP-only es un salvavidas excelente mientras corriges el origen.
Plantilla de comunicación (para tu equipo o proveedor)
Si necesitas escalar el caso a redes/seguridad, esta plantilla resume lo clave:
Resumen:
- Cortes RDP desde macOS a Windows Server 2022 cada 3–10 min.
- Mensajes en cliente: "CMSTATE_DROPPED", "StartWrite failed".
- Servidor sin errores aparentes; la sesión reanuda pero fuerza MFA.
Acciones realizadas:
- Sustitución de cable/puerto → mejora/solución.
- Prueba RDP a localhost en el servidor → estable/inestable (indicar).
- Forzado TCP (desactivado RDP-UDP) → estable/inestable (indicar).
- Ajuste de MTU/vpn y pruebas de ping sostenido.
Solicitamos:
- Revisión de contadores de errores/CRC en switches implicados.
- Verificación de filtrado/QoS/timeout de UDP 3389 en firewall/NAT.
- Confirmación de MTU extremo a extremo y PMTUD habilitado.
Conclusión
Si tus sesiones RDP en Mac hacia Windows Server 2022 se desconectan con frecuencia, empieza por el cableado; en el caso reportado, cambiar el cable eliminó las caídas. Como mitigación y herramienta de diagnóstico, fuerza TCP y desactiva UDP. Complementa con ajustes de MTU/VPN, verifica contadores de errores/CRC y simplifica el cliente en macOS. Con estos pasos, la gran mayoría de incidencias termina resuelta sin cambios profundos en el servidor.
Resultado en el caso reportado: reemplazar el cable eliminó las desconexiones; en otros entornos, forzar TCP (desactivar UDP) estabilizó la sesión mientras se corregía la red.