En algunas situaciones, es posible que no puedas conectarte a tu instancia de máquina virtual (VM) de Windows de Compute Engine con RDP. Esto puede deberse a errores de configuración o de red, o bien a que el proceso de arranque no se haya completado.
En este documento se describen varios consejos y enfoques para solucionar problemas habituales de RDP.
Asegúrate de que la VM esté online y lista
Una vez que la VM haya terminado de iniciarse (puede tardar unos minutos), confirma su estado con uno de los siguientes métodos:
Puerto serie 1
El puerto serie 1 se usa para registrar la actividad del sistema y de las aplicaciones. Consulta su salida para determinar si tu VM ha terminado de iniciarse y si los servicios se han iniciado correctamente.
En la consola de Google Cloud , ve a la página Instancias de VM.
Haga clic en el nombre de la VM de la que quiera ver los registros. Se abrirá la página de detalles de la instancia de VM.
En Registros, selecciona Puerto serie 1.
Revisa la salida del puerto 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.
Si la salida contiene GCEGuestAgent
o GCEMetadataScripts
, significa que Windows se ha iniciado correctamente. Prueba a volver a conectarte a tu VM mediante RDP.
Puerto serie 2
El puerto serie 2 proporciona una conexión interactiva a la VM y también muestra la salida de la consola de administración especial (SAC) . Puedes usar la consola serie 2 para determinar si los servicios del sistema se han iniciado correctamente.
En la consola de Google Cloud , ve a la página Instancias de VM.
Haga clic en el nombre de la VM de la que quiera ver los registros. Se abrirá la página de detalles de la instancia de VM.
En Registros, despliega Más y, a continuación, haz clic en Puerto serie 2 (consola).
Revisa la salida del puerto 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>
Si la salida contiene SAC started and initialized
o CMD command is now
available
, significa que Windows se ha iniciado correctamente. Prueba a volver a conectarte a tu VM mediante RDP.
Captura de pantalla de VM
Las capturas de pantalla de las máquinas virtuales ofrecen una representación visual del estado de una máquina virtual, similar a la de un monitor de ordenador.
Para poder hacer una captura de pantalla de tu VM, debes habilitar la pantalla virtual de la VM. Si aún no has habilitado la pantalla virtual, consulta el artículo Habilitar pantallas virtuales.
Haz una captura de pantalla. Para obtener más información, consulta Hacer una captura de pantalla de una VM.
Revisa la captura de pantalla para comprobar que la instancia está lista.
Compara tu captura de pantalla con la siguiente para determinar el estado actual:
- Una pantalla de inicio de sesión de Windows confirma que el SO se ha iniciado correctamente. Ahora puedes intentar conectarte mediante RDP.
- La pantalla de progreso de Windows Update indica que la VM aún no está lista. Dale más tiempo para que complete las actualizaciones.
- Una pantalla de carga de servicios indica que la VM aún no está lista. Espera más tiempo para que la VM inicie los servicios necesarios.
- Una pantalla de carga de UEFI puede indicar que falta un archivo o un registro de arranque, o que el sector o el administrador de arranque están dañados.
- Un error de pantalla azul de Windows puede ser temporal o requerir más pasos para solucionarlo.
Si Windows no se ha iniciado correctamente después de unos minutos, consulta la guía Solucionar problemas de Windows.
Comprobar la conectividad entre tu estación de trabajo y la instancia de VM
Si tienes problemas al conectar tu VM de Windows, es recomendable que identifiques si el problema está en la estación de trabajo que estás usando para conectarte o en la VM a la que te estás conectando. Comprueba la conectividad entre tu estación de trabajo y la VM ejecutando el siguiente comando desde tu estación de trabajo Linux, macOS o Windows:
curl -v telnet://DESTINATION_IP_ADDRESS:PORT
Haz los cambios siguientes:
DESTINATION_IP_ADDRESS
: la dirección IP de tu VM de WindowsPORT
: el puerto configurado para conectarse a través de RDP en tu máquina virtual Windows
También puedes usar pruebas de conectividad para verificar aún más la conectividad entre la instancia de VM y otros Google Cloud productos y servicios. Además, puede ser útil configurar un host bastion en la misma subred para aislar los problemas de conectividad RDP en la instancia de VM.
Comprobar la contraseña de una instancia de Windows
Cada instancia de Windows de Compute Engine debe tener una contraseña local definida si aún no está en un dominio o en una imagen personalizada. Comprueba que has configurado la contraseña correcta conectándote a la VM a través de la Google Cloud CLI
herramienta de línea de comandos Google Cloud o la consola. Para obtener más información, consulta Conectarse a la SAC de una VM Windows.
Si tienes problemas para conectarte, prueba a crear o restablecer la contraseña. Para obtener más información, consulta Crear contraseñas para VMs de Windows.
Comprobar si estás usando Windows Server Core
Cuando te conectes mediante RDP, si aparece una ventana de símbolo del sistema sobre un fondo en blanco, es probable que estés usando Windows Server Core. Para confirmar que has ejecutado el comando que se indica a continuación:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType
Server Core
en el resultado confirma que estás usando la edición Windows Core.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion InstallationType REG_SZ Server Core
Si necesitas una interfaz gráfica de usuario para tu carga de trabajo, consulta cómo crear una instancia de Windows que contenga Experiencia de escritorio en lugar de Server Core. También puedes consultar la documentación de Microsoft sobre cómo gestionar Windows Core Server.
Comprobar las reglas de cortafuegos de VPC
Compute Engine aprovisiona automáticamente los proyectos nuevos con una regla de cortafuegos que permite el tráfico RDP. Si ya tienes un proyecto o has modificado las configuraciones, es posible que no exista la regla de cortafuegos predeterminada que permite RDP. Confirma que una regla permite que el tráfico RDP se conecte a la red en la que se encuentra la instancia afectada.
Para comprobar si la regla de cortafuegos default-allow-rdp existe en tu proyecto, consulta la página Reglas de cortafuegos o ejecuta el siguiente comando de la CLI de gcloud:
gcloud compute firewall-rules list
Para crear una regla si no existe, crea una con el siguiente comando:
gcloud compute firewall-rules create allow-rdp --allow tcp:3389
Verificar la dirección IP externa
Asegúrate de que te conectas a la dirección IP externa correcta de la instancia. Consulta la IP de la instancia en la página de la instancia de VM o mediante el siguiente comando de gcloud CLI:
gcloud compute instances list
Uso de los servicios de Escritorio remoto de Windows (RDS)
Si tienes instalado Servicios de Escritorio remoto de Windows (antes conocido como Terminal Services) en tu instancia, se aplicarán las condiciones de las licencias de acceso de cliente (CALs). Con estas CALs, las conexiones RDP fallarán en cualquiera de las siguientes condiciones:
- Has usado todas las licencias disponibles
- Tu licencia está instalada, pero no se ha configurado o activado correctamente
- Tu periodo de prueba de RDS de 180 días ha finalizado
Si no tienes suficientes licencias válidas, es posible que veas mensajes como los siguientes:
- Se ha desconectado esta sesión remota porque no hay servidores de licencias de Escritorio remoto disponibles para proporcionar una licencia.
- La sesión remota se ha desconectado debido a un error relacionado con las licencias del servidor terminal.
- La sesión remota se ha desconectado porque no hay licencias de acceso de cliente de Escritorio remoto disponibles para este ordenador.
Si tus conexiones RDP fallan, puedes usar el interruptor de administrador para conectarte a la instancia con fines administrativos. Esto se puede hacer en un ordenador Windows mediante el cliente nativo Conexión a Escritorio remoto.
%SystemRoot%\System32\mstsc.exe /admin
La imagen de Windows Server y SQL Server bajo demanda incluye dos sesiones de escritorio remoto simultáneas para la administración.
Para resolver los problemas con las conexiones RDP, compra nuevas licencias de RDS para tu instancia. Para obtener más información sobre las CALs, consulta la documentación de Microsoft. Si no necesitas los Servicios de Escritorio Remoto, desinstala el servicio y usa conexiones RDP normales.
Validar la configuración y los recursos a nivel de SO
Si el entorno de invitado y las configuraciones de la instancia son correctos, es posible que el sistema operativo de la instancia esté mal configurado. Además, si no hay recursos suficientes, es posible que no se pueda establecer una conexión RDP. Para validar la configuración a nivel del SO, conéctate al SAC de Windows:
Asegúrate de que la VM tenga recursos suficientes
Comprueba que el uso de la CPU, la memoria y el disco, así como el espacio en disco disponible, no estén alcanzando sus límites. Para inspeccionar estos datos, consulta las métricas de observabilidad en la Google Cloud consola. Algunas métricas solo están disponibles en las máquinas virtuales que tienen instalado el Agente de operaciones. Si el agente de operaciones no está instalado, usa los siguientes comandos cuando te conectes a SAC:
Uso de CPU, uso de memoria, uso de disco y capacidad de 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 indican los usos de recursos recomendados para una conexión RDP. Sin embargo, se trata solo de estimaciones, por lo que pueden variar entre instancias.
- CPU: <80%
- Memoria: <80%
- Espacio en disco: > 20%
- Disco inactivo: >50%
Si alguno de los valores estimados sugeridos está llegando a su límite, puedes modificar ese recurso de la instancia de VM. Para editar las propiedades de una VM, consulta cómo cambiar el tipo de máquina de una instancia de VM y aumentar el tamaño de un disco persistente.
Comprobar la configuración del SO
Conéctate al SAC de la VM y ejecuta los siguientes comandos para asegurarte de que la instancia acepta conexiones:
Comprueba que el adaptador Ethernet esté habilitado:
- Comando:
netsh interface show interface
- Aprobado: el estado de administrador es Habilitado en el nombre de interfaz Ethernet.
- Error: el estado de administrador se ha definido como Inhabilitado en el nombre de interfaz Ethernet.
- Solución: habilita el adaptador Ethernet:
netsh interface set interface Ethernet admin=enabled
- Comando:
Comprueba que la instancia tenga una configuración de IP válida:
- Comando:
ipconfig /all
- Aprobado: el adaptador Ethernet Ethernet mostrará una dirección IPv4 de la subred a la que se ha asignado la instancia.
- Fallo: no hay ninguna dirección IPv4 o la dirección no coincide con la que se muestra en la consola Google Cloud .
- Solución: ve al siguiente paso.
- Comando:
Comprueba que DHCP esté habilitado en la instancia:
- Comando:
netsh interface ipv4 show addresses
- Aprobado: el resultado de Ethernet contiene DHCP Enabled: Yes (DHCP habilitado: sí).
- Fallo: el resultado de Ethernet contiene DHCP Enabled: No.
- Solución: habilita DHCP en el adaptador Ethernet:
netsh interface ipv4 set address Ethernet dhcp
- Comando:
Comprueba que el servicio de escritorio remoto se esté ejecutando:
- Comando:
net start | find "Remote Desktop Services"
- Aprobado: servicio de Escritorio remoto
- Fallo: (falta el servicio de Escritorio remoto en la salida)
- Solución: inicia los servicios de Escritorio Remoto:
net start "Remote Desktop Services"
- Comando:
Comprueba que las conexiones remotas estén habilitadas:
- Comando:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
- Pass: 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
- Comando:
Asegúrate de que el cortafuegos de Windows tenga habilitadas las conexiones de escritorio remoto:
- Comando:
netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
Pass: Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow
Fallo: (resultados inesperados, como enabled = No)
Solución: Habilita la regla de cortafuegos predeterminada "Escritorio remoto" en el cortafuegos de Windows:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
- Comando:
Comprueba qué número de puerto está configurado para las conexiones RDP en la instancia remota:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
- Paso: PortNumber REG_DWORD [PORT NUMBER]
- Fallo: (número de puerto inesperado)
Solución: Configura el número de puerto en el registro necesario para RDP:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]
- Comando:
Comprueba que ninguna otra aplicación esté intentando usar el mismo puerto:
- Comando:
netstat -ano | find "3389"
- Correcto: busca una entrada del puerto RDP asignado con el estado Listening (Escuchando). Puedes encontrar el servicio correspondiente mediante el identificador de proceso (PID) con el siguiente comando:
donde PID es el identificador del comando anterior. La salida solo debería devolver Termservice.tasklist /svc | find "
" - Fallo: cualquier elemento que no sea Termservice está usando el puerto asignado.
- Solución: configura la aplicación o el servicio para que use otro número de puerto.
- Comando:
Asegúrate de que la cuenta de usuario conectada tenga permisos para conexiones remotas:
- Comando:
net localgroup "Remote Desktop Users"
- Pass: (nombre de usuario local o de dominio de destino en la lista resultante)
- Fallo: (falta el nombre de usuario local o de dominio de destino)
Solución: Añade la regla "Usuarios de Escritorio remoto" a un usuario del dominio:
net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]
El dominio solo es obligatorio para las cuentas de usuario de un sistema unido a otro dominio. En el caso de las cuentas locales, especifica solo el nombre de usuario.
- Comando:
Comprueba que la negociación de seguridad entre el cliente y el servidor tenga el valor predeterminado:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer
- Pass: SecurityLayer REG_DWORD 0x1
- Fail: SecurityLayer REG_DWORD 0x0 (o 0x2)
- Solución: defina 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
- Comando:
En situaciones en las que tu instancia está conectada a un dominio de Active Directory, pero no se ha podido establecer la conexión, puede que recibas el siguiente error al intentar 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.
Comprueba que la autenticación a nivel de red (NLA) del usuario tenga el valor predeterminado:
- Comando:
reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication
- Pass: UserAuthentication REG_DWORD 0x0
- Fail (Error): UserAuthentication REG_DWORD 0x1
- Solución: define 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
- Comando:
Comprueba que el tamaño de la MTU no sea superior a la MTU de la red:
- Comando:
netsh interface ipv4 show subinterfaces
- Aprobado: cuando el número que aparece después de MTU coincide con el MTU de la red de VPC.
- Fallo: cuando el número que aparece después de MTU es mayor que el MTU de la red de VPC.
Solución: Asigna a la interfaz el MTU de la red de VPC:
netsh interface ipv4 set subinterface Ethernet mtu=MTU_OF_VPC_NETWORK
Para obtener más información sobre las incompatibilidades de tamaño de MTU, consulta nuestra documentación sobre la fragmentación de paquetes.
- Comando:
Si intentas conectarte a la VM mediante RDP y la VM muestra la pantalla de distribución del teclado, debes seleccionar un idioma conectándote a SAC de Windows. Para seleccionar un idioma, sigue estos pasos:
- Conéctate al SAC.
- Abre PowerShell escribiendo
powershell
. Obtiene la cadena de idioma correcta.
Get-WinUserLanguageList
Elige el diseño que quieras. Sustituye
LANGUAGE_TAG
por el diseño de idioma que quieras (por ejemplo,en-US
).Set-WinUserLanguageList -LanguageList LANGUAGE_TAG -force
Reinicia la instancia.
shutdown -r -t 0
Si se producen errores de RDP en la pantalla de inicio de sesión en los que se menciona
you need the right to sign in through Remote Desktop Services
oyou must be granted the Allow log on through Terminal Services right
, significa que se ha eliminado el grupo Usuarios de Escritorio remoto o Administradores de la configuración de la directiva de equipo local, que se encuentra en Permitir inicio de sesión a través de Servicios de Escritorio remoto o SeRemoteInteractiveLogonRight.Comprueba que no falten permisos que impidan 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: la salida no coincide con Everyone:(R,W) BUILTIN\Administrators:(F)
- Comando:
Asegúrate de que la configuración de tu cliente de protección de antivirus o de endpoint permita el número de puerto y los servicios configurados.
Verificar los límites de tiempo de espera de las sesiones
Si puedes establecer una conexión RDP, pero se desconecta al cabo de un tiempo y aparece un mensaje que indica que el tiempo de espera ha finalizado, comprueba 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 definen en milisegundos. Si faltan estas claves en tu registro, no habrá límites de sesión en tu instancia de VM. Si estas claves están presentes en tu registro, pero sus valores son 0
, tu sesión nunca caducará.
Solucionar problemas de inicio de Windows
Si los pasos anteriores para solucionar problemas no han resuelto el problema de conexión RDP, es posible que tu instancia de Windows no se esté iniciando o ejecutando correctamente. En ese caso, consulta nuestra guía para solucionar problemas de Windows.
Siguientes pasos
Más información sobre cómo solucionar problemas del sistema operativo Windows
Consulta cómo recoger información de diagnóstico de una máquina virtual.
Consulta información sobre cómo solucionar problemas con la consola de serie.
Consulta cómo hacer capturas de pantalla de máquinas virtuales.