Soluciona problemas de RDP


En algunas situaciones, es posible que no puedas conectarte a tu instancia de Windows de Compute Engine con RDP. Esto puede deberse a errores de configuración o de red, o a que el proceso de inicio no se haya completado.

En esta página, se describe una serie de consejos y enfoques para solucionar problemas comunes de RDP.

Asegúrate de que la instancia esté en línea y lista

Una vez que se completa el proceso de arranque, que puede demorar unos minutos, el estado de la instancia de Windows está disponible a través de los resultados de la consola en serie. Conéctate a la consola en serie interactiva o de solo lectura para comprobar que la instancia esté lista.

  • Consola en serie 1 (solo lectura)

    1. Abre tu instancia de Windows desde la página Instancias de VM en Google Cloud Console.
    2. Haz clic en la flecha desplegable junto a Conectar a la consola en serie y selecciona Puerto en serie 1, o el comando del SDK de gcloud que se muestra a continuación:

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 1
      
    3. Confirma que la instancia se inició y que intentó ejecutar secuencias de comandos de inicio.

      Booting from Hard Disk 0...
      GCEWindowsAgent: GCE Agent Started (version x.x.x@x)
      GCEMetadataScripts: No startup scripts to run.
      
  • Consola en serie 2 (interactiva)

    1. Habilita el acceso interactivo en la consola en serie mediante la página de instancias de VM o con el comando del SDK de gcloud que se muestra a continuación:

      gcloud compute instances add-metadata [INSTANCE_NAME]^
      --metadata=serial-port-enable=1
      
    2. Abre tu instancia de Windows desde la página Instancias de VM en Google Cloud Console.

    3. Haz clic en la flecha desplegable junto a Conectar a la consola en serie y selecciona Puerto en serie 2. Como alternativa, puedes ejecutar el siguiente comando del SDK de gcloud:

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 2
      
    4. Confirma que el proceso cmd esté disponible para usar.

      Comando Scmd cmd disponible.

Verifica las reglas de firewall de VPC

Compute Engine aprovisiona proyectos nuevos de forma automática con una regla de firewall que permite el tráfico de RDP. Si tienes un proyecto existente o modificaste la configuración, la regla de firewall predeterminada que permite el RDP podría no existir. Confirma que una regla permite que el tráfico de RDP se conecte a la red en la que se encuentra la instancia afectada.

Para verificar que la regla de firewall default-allow-rdp existe en el proyecto, verifica la página de reglas de firewall o ejecuta el siguiente comando del SDK de gcloud:

gcloud compute firewall-rules list

Si no existe una regla, usa el siguiente comando para crear una nueva:

gcloud compute firewall-rules create allow-rdp --allow tcp:[PORT_NUMBER]

Verifica la contraseña de la instancia de Windows

Cada instancia de Windows de Compute Engine debe tener configurada una contraseña local si aún no está en un dominio o una imagen personalizada. Para confirmar que tienes configurada la contraseña correcta, conéctate a la SAC de Windows mediante la herramienta de línea de comandos de gcloud o Cloud Console.

Si tienes problemas para conectarte, intenta crear o restablecer la contraseña en la instancia de Windows.

Verifica la dirección IP externa

Asegúrate de conectarte a la dirección IP externa correcta para la instancia. Observa la IP de la instancia desde la página de instancias de VM o mediante el siguiente comando del SDK de gcloud:

gcloud compute instances list

Uso de los servicios de escritorio remoto (RDS) de Windows

Si tienes los servicios de escritorio remoto de Windows (antes conocidos como servicios de terminal) instalados en la instancia, se aplican las condiciones de las licencias de acceso de cliente (CAL). Con estas CAL, las conexiones de RDP tendrán errores en cualquiera de las siguientes condiciones:

  • Si usaste todas las licencias disponibles.
  • Tu licencia está instalada, pero no se configuró ni se activó de manera correcta.
  • Expiró el período de prueba de RDS de 180 días.

Los síntomas de que no tienes suficientes licencias válidas incluyen mensajes como los que se muestran a continuación:

  • Esta sesión remota se desconectó porque no hay servidores de licencias de escritorio remoto disponibles para proporcionar una licencia.
  • La sesión remota se desconectó debido a un error relacionado con las licencias en Terminal Server.
  • La sesión remota se desconectó porque no hay licencias de acceso de cliente a escritorio remoto disponibles para esta computadora.

Si las conexiones de RDP tienen errores, se puede usar el interruptor de administrador para conectarte a la instancia con fines administrativos. Esto se puede hacer en una máquina de Windows mediante el cliente nativo de conexión a escritorio remoto.

%systemroot%/system32/mstsc.exe /admin

A fin de resolver problemas con las conexiones de RDP, compra licencias nuevas para la instancia. Para obtener más detalles sobre las CAL, revisa la documentación de Microsoft. De lo contrario, si no se requieren los servicios de escritorio remoto, desinstala el servicio y usa las conexiones de RDP normales.

Verifica la configuración del SO

Si el entorno y la configuración para la instancia son correctos, el sistema operativo en la instancia podría estar mal configurado. Puedes usar la consola en serie interactiva para conectarte a la instancia y solucionar el problema.

Conéctate a la instancia a través de uno de los métodos de línea de comandos disponibles y ejecuta los siguientes comandos para asegurarte de que la instancia acepte conexiones:

  1. Verifica que se ejecute el “Servicio de escritorio remoto”:

    • Comando: net start | find “Remote Desktop Services”
    • Aprobado: servicio de escritorio remoto
    • Error: (falta el servicio de escritorio remoto en el resultado)
    • Solución: net start “Remote Desktop Services”
  2. Verifica que las conexiones remotas estén habilitadas:

    • Comando: reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"/v fDenyTSConnections
    • Aprobado: fDenyTSConnections REG_DWORD 0x0
    • Error: fDenyTSConnections REG_DWORD 0x1
    • Solución: reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /f /v fDenyTSConnections /t REG_DWORD /d 0
  3. Asegúrate de que el firewall de Windows tenga habilitadas las conexiones del Escritorio remoto:

    • Comando: netsh advfirewall firewall show rule name=“Remote Desktop - User Mode (TCP-In)”
    • Aprobado: Habilitado: sí, Dirección: adentro, Perfiles: público, Grupo: escritorio remoto, LocalIP: cualquiera, RemoteIP: cualquiera, Protocolo: TCP, LocalPort: 3389, RemotePort: cualquiera, Recorrido perimetral: no, Acción: permitida

    • Error: (resultados inesperados, como habilitado = No)

    • Solución: netsh firewall set service remotedesktop enable

  4. Verifica el número del puerto configurado para las conexiones de RDP en la instancia remota:

    • Comando: reg query “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp” /v PortNumber
    • Aprobado: PortNumber REG_DWORD [PORT NUMBER]
    • Error: (número de puerto inesperado)
    • Solución: reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"/f /v PortNumber /t REG_DWORD /d [PORT NUMBER]

  5. Asegúrate de que la cuenta de usuario conectada tenga permisos para conexiones remotas:

    • Comando: net localgroup “Remote Desktop Users”
    • Aprobado: (el nombre de usuario local o del dominio de destino se encuentra en la lista resultante)
    • Error: (falta el nombre de usuario local o del dominio de destino)
    • Solución: net localgroup "Remote Desktop Users" /add[DOMAIN\USERNAME]

  6. Verifica que el tamaño de tu MTU no sea mayor que la MTU de la red:

    • Comando: netsh interface ipv4 show subinterfaces
    • Aprobado: Cuando el número después de la MTU coincide con la MTU de la red de VPC
    • Error: Cuando el número después de la MTU es mayor que la MTU de la red de VPC
    • Solución: netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK

      Note: VPC networks have a default maximum transmission unit (MTU) of 1460 bytes. However, the network MTU can be set to 1500 bytes. See Maximum transmission unit for background on network MTUs.
  7. Asegúrate de que la configuración del cliente de protección de extremos o del antivirus permita el número de puerto y los servicios configurados.

Usa el disco en una instancia nueva

Si los otros pasos de solución de problemas no resuelven el problema de conexión, es posible que puedas borrar la instancia existente y preservar el disco persistente. Vuelve a activar el disco en una instancia nueva y realiza otro intento de solución de problemas, o solo recupera los datos existentes del disco.

gcloud compute instances delete [INSTANCE_NAME] --keep-disks=boot
gcloud compute instances create [NEW_INSTANCE_NAME] --disk name=[DISK_NAME],boot=yes,auto-delete=no