Solução de problemas do RDP


Em algumas situações, talvez você não consiga se conectar à instância do Compute Engine do Windows com RDP. Isso pode ocorrer por erros de configuração ou de rede ou, ainda, porque o processo de inicialização pode não ter sido concluído.

Nesta página, há algumas dicas para resolver problemas comuns do RDP.

Garanta que a instância esteja on-line e pronta

Quando o processo de inicialização é concluído, o que pode levar alguns minutos, o status da instância do Windows fica disponível por meio da saída serial do console. Conecte-se ao console serial somente leitura ou interativo para verificar se a instância está pronta.

  • Console serial 1 (somente leitura)

    1. Abra a instância do Windows na página Instâncias de VM no Console do Google Cloud.
    2. Clique na seta suspensa ao lado de Conectar ao console serial e selecione Porta serial 1 ou o comando SDK gcloud abaixo:

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 1
      
    3. Confirme se a instância foi iniciada e tentou executar scripts de inicialização.

      Booting from Hard Disk 0...
      GCEWindowsAgent: GCE Agent Started (version x.x.x@x)
      GCEMetadataScripts: No startup scripts to run.
      
  • Console serial 2 (interativo)

    1. Ative o acesso interativo no console serial pela página Instâncias de VM ou pelo comando gcloud do SDK abaixo:

      gcloud compute instances add-metadata [INSTANCE_NAME]^
      --metadata=serial-port-enable=1
      
    2. Abra a instância do Windows na página Instâncias de VM no Console do Google Cloud.

    3. Clique na seta suspensa ao lado de Conectar-se ao console serial e selecione Porta serial 2. Como alternativa, execute o seguinte comando gcloud do SDK:

      gcloud compute connect-to-serial-port [INSTANCE_NAME] --port 2
      
    4. Confirme se o processo cmd está disponível para uso.

      Comando cmd do SAC disponível.

Verificar as regras de firewall VPC

O Compute Engine provisiona automaticamente novos projetos com uma regra de firewall que permite o tráfego RDP. Se você já tiver um projeto ou tiver modificado as configurações, a regra de firewall padrão que permite o RDP pode não existir. Confirme se uma regra permite que o tráfego RDP se conecte à rede onde está sua instância afetada.

Para verificar se a regra de firewall default-allow-rdp existe no seu projeto, verifique a página Regras de firewall ou execute o comando gcloud do SDK a seguir:

gcloud compute firewall-rules list

Para criar uma nova regra, caso não tenha uma, use o comando a seguir:

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

Verificar sua senha da instância do Windows

Cada instância do Compute Engine do Windows deve ter uma senha local definida caso ainda não esteja em um domínio ou imagem personalizada. Confirme se você tem a senha correta definida pela conexão com o Windows SAC por meio da ferramenta de linha de comando gcloud ou do Console do Cloud.

Se você tiver problemas para se conectar, crie ou redefina a senha na instância do Windows.

Verificar o endereço IP externo

Verifique se você está se conectando ao endereço IP externo correto da instância. Consulte o IP na página Instâncias de VM ou use o seguinte comando gcloud do SDK:

gcloud compute instances list

Uso dos Serviços de Área de Trabalho Remota do Windows (RDS, na sigla em inglês)

Se você tiver os Serviços de Área de Trabalho Remota do Windows (antes conhecidos como Serviços de Terminal) instalados em sua instância, as condições das Licenças de Acesso do Cliente (CALs, na sigla em inglês) serão aplicadas. Com essas CALs, as conexões RDP falharão em qualquer uma das condições a seguir:

  • Você usou todas as licenças disponíveis
  • Sua licença está instalada, mas não está configurada ou foi ativada corretamente
  • Seu período de avaliação do RDS de 180 dias expirou

Os sintomas de que você talvez não tenha licenças válidas suficientes incluem mensagens como:

  • Esta sessão remota foi desconectada porque não há servidores de licenças de área de trabalho remota disponíveis para fornecer uma licença.
  • A sessão remota foi desconectada devido a um erro relacionado ao licenciamento no servidor de terminal.
  • A sessão remota foi desconectada porque não há licenças de acesso para cliente de área de trabalho remota disponíveis para este computador.

Se suas conexões RDP falharem, use a opção admin para se conectar à instância para fins administrativos. Isso pode ser feito em uma máquina com Windows usando o cliente de Conexão de Área de Trabalho Remota nativo.

%systemroot%/system32/mstsc.exe /admin

Para resolver problemas com conexões RDP, adquira novas licenças para sua instância. Para obter mais detalhes sobre CALs, consulte a documentação da Microsoft. Como alternativa, se os Serviços de Área de Trabalho Remota não forem obrigatórios, desinstale o serviço e use as conexões RDP regulares.

Verificar a configuração do SO

Se o ambiente e as configurações da instância estiverem corretos, é possível que o sistema operacional na instância esteja configurado incorretamente. Use o console serial interativo para se conectar à instância e resolver o problema.

Conecte-se à instância por meio de um dos métodos de linha de comando disponíveis e execute os seguintes comandos para garantir que a instância aceite conexões:

  1. Verifique se o "Serviço de Área de Trabalho Remota" está em execução:

    • Comando: net start | find "Remote Desktop Services"
    • Aprovado: Remote Desktop Service
    • Com falha: (Remote Desktop Service não aparece no resultado)
    • Solução: net start "Remote Desktop Services"
  2. Verifique se as Conexões remotas estão ativadas:

    • Comando: reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
    • Aprovado: fDenyTSConnections REG_DWORD 0x0
    • Com falha: fDenyTSConnections REG_DWORD 0x1
    • Solução: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  3. Certifique-se de que o firewall do Windows tenha Conexões de área de trabalho remota ativadas:

    • Comando: netsh advfirewall firewall show rule name="Remote Desktop -User Mode (TCP-In)"
    • Aprovado: Enabled:Yes, Direction: In, Profiles: Public, Grouping: Remote Desktop, LocalIP: Any, RemoteIP: Any, Protocol:TCP, LocalPort: 3389, RemotePort: Any, Edge traversal: No, Action: Allow

    • Com falha: (resultados inesperados, como "enabled = No")

    • Solução: netsh firewall set service remotedesktop enable

  4. Verifique se o número da porta está configurado para conexões RDP na instância remota:

    • Comando: reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
    • Aprovado: PortNumber REG_DWORD [PORT NUMBER]
    • Com falha: (unexpected port number)
    • Solução: reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /f /v PortNumber /t REG_DWORD /d [PORT NUMBER]

  5. Certifique-se de que a conta de usuário conectada tenha permissões para conexões remotas:

    • Comando: net localgroup "Remote Desktop Users"
    • Aprovado: (nome de usuário do domínio/local de destino aparece na lista resultante)
    • Com falha: (nome de usuário do domínio/local de destino não aparece na lista resultante)
    • Solução: net localgroup "Remote Desktop Users" /add [DOMAIN\USERNAME]

  6. Verifique se o tamanho da sua MTU não é maior do que a MTU da rede:

    • Comando: netsh interface ipv4 show subinterfaces
    • Aprovado: quando o número após a MTU corresponde à MTU da rede VPC.
    • Não aprovado: quando o número após a MTU é maior do que a MTU da rede VPC.
    • Solução: 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. Verifique se as configurações do cliente de proteção antivírus/endpoint permitem o número de porta e os serviços configurados.

Usar seu disco em uma nova instância

Se as outras etapas de solução de problemas não resolverem o problema de conexão, é possível excluir a instância atual e preservar seu disco permanente. Remonte o disco em uma nova instância e tente solucionar o problema novamente ou apenas recupere os dados existentes do 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