使用 RDP 连接到 Windows 虚拟机


本文档介绍了如何使用 RDP 连接到 Windows 虚拟机 (VM) 实例。如需了解连接到 Windows 虚拟机的其他方法,请参阅使用 PowerShell 连接到 Windows 虚拟机使用 SSH 连接到 Windows 虚拟机

准备工作

  • 如果您要使用本指南中的命令行示例,请执行以下操作:
    1. 安装或更新到 Google Cloud CLI 的最新版本。
    2. 设置默认区域和可用区
  • 确保虚拟机允许通过远程桌面协议 (RDP) 进行访问。默认情况下,Compute Engine 会创建允许通过 TCP 端口 3389 进行 RDP 访问的防火墙规则。您可以通过访问 Google Cloud 控制台中的防火墙规则页面并查找允许 tcp:3389 连接的防火墙规则来验证这些防火墙规则是否存在。

使用 RDP 连接到 Windows 虚拟机

Compute Engine 支持通过多种方式连接到 Windows 实例。

连接到 Windows 实例

连接到 Windows 实例的远程桌面的最佳方法取决于多种因素:

  • 如果您要通过公共互联网从任何位置(上图中的“连接来源”> 任何位置)进行连接,则最好为项目启用 Identity-Aware Proxy TCP 转发然后,将 IAP 桌面(在 Windows 上)或 Google Cloud CLI 与 RDP 客户端搭配使用。如需了解详情,请参阅 Microsoft 远程桌面客户端以连接到 Windows 实例。如果您无法使用 Identity-Aware Proxy TCP 转发,请使用 Chrome 远程桌面
  • 如果虚拟机实例具有公共 IP 地址且防火墙规则允许进行 RDP 访问,请使用 RDP 客户端。如需了解详情,请参阅 Microsoft 远程桌面客户端以连接到 Windows 实例。
  • 如果虚拟机实例没有公共 IP 地址,并且您要使用 Cloud VPN 或 Cloud Interconnect 进行连接,则可以使用 RDP 客户端连接到虚拟机的专用 IP 地址。如需了解详情,请参阅 Microsoft 远程桌面客户端

如果您在使用 RDP 建立连接时遇到问题,请参阅排查 RDP 问题。如果您无法使用远程桌面连接到 Windows 实例,请参阅本文档中的连接到 Windows SAC

如需连接到 Windows 实例的远程桌面,请按照以下过程之一操作。

IAP 桌面

IAP 桌面是一个 Windows 应用,可让您管理 Windows 虚拟机实例的多个远程桌面连接。IAP 桌面使用 Identity-Aware Proxy TCP 转接连接到虚拟机实例,并且不需要虚拟机实例具有公共 IP 地址。

在使用 IAP 桌面进行连接之前,请确保满足以下前提条件:

要使用 IAP 桌面连接到虚拟机实例,请执行以下操作:

  1. 在 IAP 桌面中,选择文件 > 添加 Google Cloud 项目

  2. 输入项目的 ID 或名称,然后点击确定

  3. Project Explorer 窗口中,右键点击要连接的虚拟机实例,然后选择连接

    IAP 桌面。

如需详细了解 IAP 桌面,请参阅 GitHub 项目页面

远程桌面连接应用

您可以使用属于 Windows 的 Microsoft 远程桌面连接应用连接到 Windows 实例。

在使用 Microsoft 远程桌面连接应用进行连接之前,请确保满足以下前提条件之一:

  • 您的虚拟机实例具有公共 IP 地址,并且您的防火墙规则允许 TCP 入站流量使用端口 3389 从您客户端的公共 IP 地址流向该实例。
  • 您的本地网络已通过 Cloud VPNCloud Interconnect 连接到您的 VPC,并且您的防火墙规则允许来自客户端专用 IP 地址的 TCP 入站流量使用端口 3389 进入实例。

如需通过 Microsoft Windows 远程桌面进行连接,请执行以下操作:

  1. 如果您还没有 Windows 帐号,请创建 Windows 帐号和密码

  2. 如需通过互联网进行连接,请使用外部 IP 地址。如需使用 Cloud VPN 或 Cloud Interconnect 进行连接,请使用内部 IP 地址。

    通过完成以下步骤之一确定 Windows 实例的外部和内部 IP 地址:

    • 在 Google Cloud 控制台中,前往虚拟机实例页面。

      转到“虚拟机实例”页面

    • 使用 gcloud CLI 运行 gcloud compute instances list

      gcloud compute instances list
  3. 在 Windows 机器上打开 Microsoft Windows 远程桌面连接。您可以通过以下路径和文件名找到该可执行文件:%systemroot%\system32\mstsc.exe

    “远程桌面连接”对话框。

  4. 计算机框中,输入 IP 地址。

    如果您已对实例进行配置,使其为 RDP 使用其他端口号,请将相应端口号添加到 IP 地址之后,例如:1.2.3.4:3389

  5. 点击连接

  6. 输入您的用户名和密码,然后点击确定

    如果您忘记了密码,可以重置密码

Chrome 远程桌面

Chrome 远程桌面服务可让您使用网络浏览器远程访问其他计算机。 Chrome 远程桌面可在 Windows、macOS 和 Linux 上运行,并且不需要虚拟机实例具有公共 IP 地址。

在使用 Chrome 远程桌面进行连接之前,请确保满足以下前提条件:

要使用 Chrome 远程桌面连接到虚拟机实例,请执行以下操作:

  1. 在本地计算机上,转到 Chrome 远程桌面网站。

  2. 如果您尚未登录 Google,请使用您用于设置 Chrome 远程桌面服务的同一 Google 帐号进行登录。

  3. 选择要连接的实例。

  4. 出现提示时,输入您在安装 Chrome 远程桌面服务时创建的 PIN 码,然后点击 箭头按钮进行连接。

其他

您可以使用其他 RDP 客户端(例如为 Android、iOS、Mac 等开发的客户端)连接到 Windows 虚拟机实例。如需查看官方支持的客户端列表,请参阅 Microsoft 远程桌面客户端

在进行连接之前,请确保满足以下前提条件之一:

  • 您的虚拟机实例具有公共 IP 地址,并且您的防火墙规则允许 TCP 入站流量使用端口 3389 从您客户端的公共 IP 地址流向该实例。
  • 您的本地网络已通过 VPNCloud Interconnect 连接到您的 VPC,并且您的防火墙规则允许来自客户端专用 IP 地址的 TCP 入站流量使用端口 3389 进入实例。

如需使用其他 RDP 客户端进行连接,请执行以下操作:

  1. 如需通过互联网进行连接,请使用外部 IP 地址。如需使用 Cloud VPN 或 Cloud Interconnect 进行连接,请使用内部 IP 地址。

    通过完成以下步骤之一确定 Windows 实例的外部和内部 IP 地址:

    • 在 Google Cloud 控制台中,前往虚拟机实例页面。

      转到“虚拟机实例”页面

    • 使用 gcloud CLI 运行 gcloud compute instances list

      gcloud compute instances list
  2. 根据客户端的安装说明来安装支持的客户端。

  3. 使用您实例的 IP 地址进行连接,并使用您用于该实例的用户名和密码进行身份验证。

如果您在使用 RDP 建立连接时遇到问题,请参阅 RDP 问题排查页面。 如需了解 RDP 许可,请参阅有关 Microsoft 许可的常见问题解答

验证 RDP 证书

通过查看来自虚拟机初始启动的串行端口输出或使用 SAC 中的相应 PowerShell 命令来验证 RDP 证书。

串行端口

  1. 通过在 Windows 虚拟机初始启动期间查看来自串行端口 1 的输出来验证 RDP 证书。

  2. 在 Windows 虚拟机初始启动期间查看串行端口 1 的输出是否有以下内容:

    Serial port 1 (console) output for rdp-test
    ...
    ...
    2021/03/31 15:53:58 GCEInstanceSetup: RDP certificate details: Subject: CN=rdp-test, Thumbprint: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    ...
    ...
    

来自 SAC 的 PowerShell

  1. 连接到 Windows SAC。

  2. 运行以下 PowerShell 命令:

    # WinRM Cert
    Write-Host 'WinRM certificate details:'; Get-ChildItem 'Cert:\LocalMachine\My' | Where-Object { $_.Subject -like "CN=$env:COMPUTERNAME*" -and $_.NotAfter -gt $(Get-Date) -and $_.HasPrivateKey} |  Select-Object Subject, Thumbprint | Format-List
    # RDP Cert
    Write-Host 'RDP certificate details:'; Get-ChildItem 'Cert:\LocalMachine\Remote Desktop\' | Where-Object { $_.Subject -like "CN=$env:COMPUTERNAME*" -and $_.NotAfter -gt $(Get-Date) -and $_.HasPrivateKey} |  Select-Object Subject, Thumbprint | Format-List
    

连接到 Windows SAC

本部分介绍如何使用交互式串行控制台连接到 Windows 实例的特殊管理控制台 (SAC)。SAC 使用到虚拟机的串行端口连接,而不依赖于网络连接。

您必须先为虚拟机启用交互式访问权限,然后才能使用交互式串行控制台连接到虚拟机。如需了解详情,请参阅启用对串行控制台的交互式访问

如需使用交互式串行控制台连接到 Windows 实例,请完成以下任一标签页中的步骤:

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 点击要连接到的虚拟机的名称。

  3. 点击连接到串行控制台以打开交互式控制台。

系统会打开交互式串行控制台。当您看到以下输出时,即可使用:

Computer is booting, SAC started and initialized.

Use the "ch -?" command for information about using channels.
Use the "?" command for general help.

SAC>

gcloud

使用 gcloud compute connect-to-serial-port 命令连接到启用串行端口访问权限的虚拟机实例:

gcloud compute connect-to-serial-port VM_NAME \
    --port=2 \
    --zone=ZONE \
    --project=PROJECT_ID

请替换以下内容:

  • PROJECT_ID:包含实例的项目的 ID。
  • ZONE:实例所在地区的名称。
  • VM_NAME:实例的名称

系统会打开交互式串行控制台。当您看到以下输出时,即可使用:

Computer is booting, SAC started and initialized.

Use the "ch -?" command for information about using channels.
Use the "?" command for general help.

SAC>

如需了解如何使用交互式串行控制台,请参阅 Microsoft SAC 命令文档

在 Windows SAC 中打开命令提示符

常用的工作流是打开命令提示符或 Powershell 以允许运行命令。如需打开 cmd 渠道,请执行以下操作:

  1. 输入 cmd,然后按 Enter 键。您将看到以下输出内容:

    SAC>cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC>
    
  2. 使用 ch -sn CHANNEL_NAME 命令,然后按 Enter 键。将 CHANNEL_NAME 替换为您在上一步中创建的渠道的名称。

    SAC>ch -sn Cmd0001
    
    Name:                  Cmd0001
    Description:           Command
    Type:                  VT-UTF8
    Channel GUID:          28de7392-5413-11ea-bb03-c9656a2ed613
    Application Type GUID: 63d02271-8aa4-11d5-bccf-00b0d014a2d0
    
    Press <esc><tab> for next channel.
    Press <esc><tab>0 to return to the SAC channel.
    Use any other key to view this channel.
    
  3. 空格键,然后使用系统中注册的本地凭据登录。

    Please enter login credentials.
    Username: USERNAME
    Domain: DOMAIN (leave blank if no domain)
    Password: PASSWORD
    

    连接后,即可使用命令提示符 shell。

    Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.
    
    C:\Windows\system32>
    
  4. 可选:如需进入 Powershell 提示符,请输入 powershell.exe,然后按 Enter 键。

后续步骤