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 VM esté en línea y lista

Una vez que la VM termina de iniciarse, lo que puede tardar unos minutos, confirma su estado mediante uno de los siguientes métodos:

Puerto en serie 1

El puerto en serie 1 se usa para registrar la actividad del sistema y de la aplicación. Visualiza los resultados para determinar si la VM terminó de iniciarse y si los servicios se iniciaron de forma correcta.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la VM de la que deseas ver los registros. Se abrirá la página Detalles de instancia de VM.

  3. En registros, selecciona Puerto en serie 1.

  4. Revisa la salida del puerto en serie 1 y busca una salida similar a la siguiente:

    BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    
    UEFI: Attempting to start image.
    Description: Windows Boot Manager
    FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    OptionNumber: 3.
    
    2021/04/13 10:50:22 GCEGuestAgent: GCE Agent Started (version 20210128.00)
    2021-04-13T10:50:23.4621Z OSConfigAgent Info: OSConfig Agent (version 20210217.00.0+win@1) started.
    2021/04/13 10:50:42 GCEMetadataScripts: Starting startup scripts (version 20200129.00).
    2021/04/13 10:50:42 GCEMetadataScripts: No startup scripts to run.
    

Una salida que contiene GCEGuestAgent o GCEMetadataScripts confirma que Windows se inició de forma correcta. Vuelve a conectarte a tu VM mediante RDP.

Puerto en serie 2

El puerto en serie 2 proporciona una conexión interactiva a la VM y también muestra la salida de la consola administrativa especial (SAC). Puedes usar la consola en serie 2 para determinar si los servicios del sistema se iniciaron de forma correcta.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el nombre de la VM de la que deseas ver los registros. Se abrirá la página Detalles de instancia de VM.

  3. En registros, expande Más y luego, haz clic en Puerto en serie 2 (consola).

  4. Revisa la salida del puerto en serie 2 y busca una salida similar a la siguiente:

    BdsDxe: loading Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    BdsDxe: starting Boot0003 "Windows Boot Manager" from HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    
    UEFI: Attempting to start image.
    Description: Windows Boot Manager
    FilePath: HD(2,GPT,DD3FB000-7000-4000-8000-3977378A7000,0x0000,0x00000)/\EFI\Microsoft\Boot\bootmgfw.efi
    OptionNumber: 3.
    
    <machine-info>
    <name>WINDOWS</name>
    <guid>b7ab5000-4000-e000-e000-bc5a738da000</guid>
    <processor-architecture>AMD64</processor-architecture>
    <os-version>10.0</os-version>
    <os-build-number>17763</os-build-number>
    <os-product>Windows Server 2019 Datacenter</os-product>
    <os-service-pack>None</os-service-pack>
    </machine-info>
    Computer is booting, SAC started and initialized.
    Use the "ch -?" command for information about using channels.
    EVENT: The CMD command is now available.
    SAC>
    

El resultado que contiene SAC started and initialized o CMD command is now available confirma que Windows se inició de forma correcta. Vuelve a conectarte a tu VM mediante RDP.

Captura de pantalla de la VM

Las capturas de pantalla de VM proporcionan una representación visual del estado de una VM, similar a un monitor de computadora.

  1. Para poder realizar una captura de pantalla de la VM, debes habilitar la pantalla virtual. Si aún no habilitaste la pantalla virtual, consulta Habilita pantallas virtuales.

  2. Toma una captura de pantalla. Para obtener más información, consulta Realiza una captura de pantalla desde una VM.

  3. Revisa la captura de pantalla para ver que la instancia está lista.

Compare su captura de pantalla con la siguiente para determinar el estado actual:

Si Windows no se inició de forma correcta después de unos minutos, revisa la guía Soluciona problemas de Windows.

Verifica la conectividad entre tu estación de trabajo y la instancia de VM

Si tienes problemas cuando conectas tu VM de Windows, se recomienda identificar si el problema es con la estación de trabajo que usas para conectarte o la VM a la que te estás conectando. Para verificar la conectividad entre tu estación de trabajo y la VM, ejecuta el siguiente comando desde tu estación de trabajo Linux, macOS o Windows:

curl -v telnet://DESTINATION_IP_ADDRESS:PORT

Reemplaza lo siguiente:

  • DESTINATION_IP_ADDRESS: la dirección IP de tu VM de Windows
  • PORT: el puerto configurado para conectarse a través de RDP en la VM de Windows

También puedes usar pruebas de conectividad para verificar aún más la conectividad entre la instancia de VM y otros productos y servicios de Google Cloud. Además, puede ser útil configurar un host de bastión en la misma subred para aislar los problemas de conectividad de RDP en la instancia de VM.

Verifica la contraseña de la instancia de Windows

Cada instancia de Windows de Compute Engine debe tener una contraseña local si aún no está en un dominio o imagen personalizada. Para confirmar que tienes configurada la contraseña correcta, conéctate a la VM mediante la herramienta de línea de comandos de Google Cloud CLI o la consola de Google Cloud. Para obtener más información, consulta Conéctate a las VMs de Windows mediante la SAC.

Si tienes problemas para conectarte, prueba crear o restablecer la contraseña. Si deseas obtener más información, consulta Crea contraseñas para las VM de Windows.

Verifica si usas Windows Server Core

Cuando te conectas con RDP, si recibes una ventana del símbolo del sistema en un fondo en blanco, es probable que indiques que usas Windows Server Core. Para confirmar que ejecuta el comando a continuación, sigue estos pasos:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType

Server Core en tu resultado confirma que usas la edición Windows Core.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    InstallationType    REG_SZ    Server Core

Si necesitas una interfaz de usuario gráfica para la carga de trabajo, consulta Crea una instancia de Windows que contenga experiencia de escritorio en lugar de Server Core. Como alternativa, puedes revisar la documentación de Microsoft Administra el servidor de Windows Core.

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 de la CLI 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:3389

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 de la CLI 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

Se incluyen dos sesiones de escritorio remoto simultáneas para la administración con la imagen de Windows Server y SQL Server a pedido.

A fin de resolver problemas con las conexiones de RDP, compra licencias RDS 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 conexiones de RDP normales.

Valida la configuración y los recursos a nivel de SO

Si el entorno invitado y la configuración para la instancia son correctos, el sistema operativo en la instancia podría estar mal configurado. Además, sin los recursos adecuados, es posible que no se establezca una conexión RDP. Para validar la configuración a nivel del SO, conéctate a la SAC de Windows:

Asegúrate de que la VM tenga los recursos adecuados

Verifica que la CPU, la memoria, el uso del disco y el espacio disponible en el disco no alcance sus límites. Para inspeccionar estos datos, revisa las métricas de observabilidad en la consola de Google Cloud. Algunas métricas solo están disponibles para las VMs que tienen instalado el agente de operaciones. Como alternativa, si el Agente de operaciones no está instalado, usa los siguientes comandos cuando te conectes a SAC:

Uso de CPU, uso de memoria, uso del disco y capacidad del disco

  • Uso de CPU:
    typeperf "\Processor(_Total)\% Processor Time" -sc 5
  • Uso de memoria:
    typeperf "\Memory\% Committed Bytes In Use" -sc 5
  • Uso del disco:
    typeperf "\LogicalDisk(*)\% Idle Time" -sc 5
  • Capacidad del disco:
    fsutil volume diskfree C:

A continuación, se describen los usos recomendados para los recursos de una conexión RDP. Sin embargo, estos son solo estimaciones y pueden variar entre instancias.

  • CPU: <80%
  • Memoria: <80%
  • Espacio en el disco: >20%
  • Disco inactivo: >50%

Si alguna de las estimaciones sugeridas alcanza sus límites, puedes modificar ese recurso para la instancia de VM. Para editar las propiedades de la VM, consulta cómo editar el tipo de máquina de una instancia de VM y aumentar el tamaño de un disco persistente.

Verifica la configuración del SO

Conéctate a la instancia a través de SAC y ejecuta los siguientes comandos para asegurarte de que la instancia acepte conexiones:

  1. Verifica que el adaptador de Ethernet esté habilitado:

    • Comando:
      netsh interface show interface
    • Aprobado: el estado de administrador se estableció en Habilitado en el nombre de la interfaz etiquetado como Ethernet.
    • Error: el estado de administrador se estableció en Inhabilitado, en el nombre de la interfaz etiquetado como Ethernet.
    • Solución: habilita el adaptador de Ethernet:
      netsh interface set interface Ethernet admin=enabled
  2. Verifica que la instancia tenga una configuración de IP válida:

    • Comando:
      ipconfig /all
    • Aprobado: el adaptador de Ethernet Ethernet mostrará una dirección IPv4 de la subred a la que está asignada la instancia.
    • Error: sin dirección IPv4 o una dirección que no coincida con lo que se muestra en la consola de Google Cloud.
    • Solución: continúa con el paso siguiente.
  3. Verifica que el DHCP esté habilitado en la instancia:

    • Comando:
      netsh interface ipv4 show addresses
    • Aprobado: el resultado en Ethernet contiene DHCP habilitado: sí.
    • Error: el resultado en Ethernet contiene DHCP habilitado: no.
    • Solución: habilita DHCP en el adaptador de Ethernet:
      netsh interface ipv4 set address Ethernet dhcp
  4. 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: inicia los servicios de escritorio remoto:
      net start "Remote Desktop Services"
  5. 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: habilita las conexiones de escritorio remoto en el registro:
      reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  6. Asegúrate de que el firewall de Windows tenga habilitadas las conexiones de 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: habilita la regla de firewall predeterminada de “Escritorio remoto” dentro del firewall de Windows:

      netsh advfirewall firewall set rule group="remote desktop" new enable=Yes

  7. 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: configura el número de puerto en el registro requerido para RDP:

      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]

  8. Verifica que otra aplicación no intente usar el mismo puerto:

    • Comando:
      netstat -ano | find "3389"
    • Aprobado: busca una entrada para el puerto de RDP asignado con el estado En escucha. El servicio de coincidencia se puede encontrar mediante el identificador de proceso (PID) mediante el siguiente comando:
      tasklist /svc | find ""
      En el ejemplo anterior, PID es el identificador del comando anterior. El resultado solo debe tener Termservice.
    • Error: cualquier elemento, excepto Termservice, usa el puerto asignado.
    • Solución: configura la aplicación o servicio para usar otro número de puerto.
  9. 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: agrega la regla “Usuarios de Escritorio remoto” a un usuario en el dominio:

      net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]

      El dominio solo es necesario para las cuentas de usuario de un sistema unido a un dominio diferente. Para las cuentas locales, especifica solo el nombre de usuario.

  10. Verifica que la negociación de seguridad cliente/servidor esté configurada en su valor predeterminado:

    • Comando:
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
    • Aprobado: SecurityLayer REG_DWORD 0x1
    • Error: SecurityLayer REG_DWORD 0x0 (or 0x2)
    • Solución: configura el valor de negociación de seguridad en el registro:
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 1 /f
  11. En situaciones en las que tu instancia está conectada a un dominio de Active Directory, pero la conexión no se pudo establecer, es posible que recibas el siguiente error cuando intentes acceder a tu instancia:

    The remote computer that you are trying to connect to requires Network Level Authentication (NLA), but your Windows domain controller cannot be contacted to perform NLA.
    

    Verifica que la autenticación de nivel de red del usuario (NLA) esté configurada en su valor predeterminado:

    • Comando:
      reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
    • Aprobado: UserAuthentication REG_DWORD 0x0
    • Error: UserAuthentication REG_DWORD 0x1
    • Solución: configura el valor de autenticación a nivel de red en el registro:
      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
  12. 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: configura la MTU de la interfaz en la MTU de la red de VPC:

      netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK

      Para obtener más información acerca de las incompatibilidades de tamaño de MTU, consulta nuestra documentación sobre la fragmentación de paquetes.

  13. Si intentas conectarte a la VM mediante el RDP y la pantalla muestra el diseño del teclado, debes conectarte a la SAC de Windows para seleccionar un idioma. Para seleccionar un idioma, completa los siguientes pasos:

    1. Conéctate a la SAC.
    2. Escribe powershell para abrir PowerShell.
    3. Obtén la cadena de idioma correcta.

      Get-WinUserLanguageList
    4. Establece el diseño deseado. Reemplaza LANGUAGE_TAG por el diseño de idioma que desees (por ejemplo, en-US).

      Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
    5. Reinicia la instancia.

      shutdown -r -t 0
  14. Para los errores de RDP en la pantalla de inicio de sesión que mencionan you need the right to sign in through Remote Desktop Services o you must be granted the Allow log on through Terminal Services right, el grupo de usuarios o administradores de escritorio remoto se quitó de la configuración de la política de computadora local que se encuentra en Permitir el acceso a través de servicios de escritorio remoto o SeRemoteInteractiveLogonRight.

  15. Verifica que no falten permisos que bloqueen la autenticación de certificados:

    • Comando:
      icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"
    • Aprobado: el resultado es similar a Everyone:(R,W) BUILTIN\Administrators:(F)
    • Error: el resultado no coincide con Everyone:(R,W) BUILTIN\Administrators:(F)
  16. Asegúrate de que la configuración del cliente de protección extremo o del antivirus permita el número de puerto y los servicios configurados.

Verifica los límites de tiempo de espera de las sesiones

Si puedes establecer una conexión RDP, pero te desconectas después de un tiempo con un mensaje que menciona que el Temporizador venció, verifica que los siguientes valores sean los esperados:

Ruta de registro: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services

Claves de registro:

  • MaxDisconnectionTime
  • MaxIdleTime
  • MaxConnectionTime
  • MaxDisconnectionTime
  • RemoteAppLogoffTimeLimit

Estos valores se establecen en milisegundos. Si faltan estas claves en tu registro, no hay límites de sesión en tu instancia de VM. Si estas claves están presentes en el registro, pero sus valores se configuran como 0, tu sesión nunca vencerá.

Soluciona problemas de inicio de Windows

Si los pasos anteriores para solucionar problemas no resolvieron tu problema de conexión de RDP, es posible que tu instancia de Windows no se inicie o no se ejecute de forma correcta. En este caso, revisa nuestra guía para solucionar problemas de Windows.

¿Qué sigue?