无法远程连接Windows实例的排查方法

无法远程连接Windows实例的原因较多,请您根据实际情况,通过相应的排查方法,排查并解决无法远程连接Windows实例的问题。本文主要介绍无法远程连接Windows实例的处理方法。

快速登录Windows实例

如果您遇到紧急情况,需要尽快登录Windows实例,请参见以下操作步骤,先检查ECS实例的状态,然后通过云助手向Windows实例发送命令或通过VNC登录实例,具体步骤如下:

步骤一:检查ECS实例状态

无论何种原因导致无法远程登录ECS实例,请先检查实例的状态。只有当ECS实例为运行中状态时,才能对外提供业务访问。检查步骤如下:

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 实例页面,单击目标实例ID,查看目标实例的实例状态健康状态,并选择合适的登录方式。

    • ECS实例生命周期状态和实例健康状况为下表所示,您可以继续步骤二:通过VNC登录ECS实例操作。

      实例生命周期状态

      实例健康状态

      登录方式

      启动中(Starting)

      初始化中(Initializing)

      VNC

      运行中(Running)

      初始化中(Initializing)

      VNC

      无异常(OK)/操作系统运行存在异常(Impaired)

      VNC和WorkBench

      关机中(Stopping)

      数据不足(InsufficientData)

      VNC

      已关机(Stopped)

      InsufficientData

      无法登录

    • ECS实例生命周期状态为除上表所示的其他状态时,您可以根据实例的状态,选择对应的解决方案。

      更多ECS实例生命周期状态,请参见实例的生命周期

步骤二:通过VNC登录ECS实例

如果云助手无法使用或者无法满足您的使用需求,您还可以通过阿里云VNC工具进行远程登录,使用方法如下:

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 实例页面,找到需要连接的实例,单击该实例对应操作列下的远程连接

  5. 在弹出的远程连接对话框中,单击展开其他登录方式,然后单击通过VNC远程连接对应的立即登录

  6. 登录实例操作系统。

    1. 在页面左上角,单击发送远程命令 > CTRL+ALT+DELETE

      window按键

    2. 选择用户账户,输入实例登录密码,然后按Enter键。

      说明

      Windows实例默认账户为Administrator。

步骤三:通过云助手向Windows实例发送命令

您可以尝试通过阿里云云助手向Windows实例发送命令,云助手的使用步骤如下:

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 实例页面,找到待操作的实例,在操作中,选择image > 远程连接 > 发送命令

  5. 输入您需要执行的命令,单击执行,即可在未登录Windows实例的情况下执行命令。

    更多有关云助手的信息,请参见云助手概述

    重启ECS实例

没有明确的报错信息

在远程连接失败时,如果您没有收到系统返回的报错信息,并且ECS实例是运行中的状态,然后再根据以下步骤进行排查:

  1. 步骤一:使用阿里云Workbench工具测试远程登录

  2. 步骤二:检查是否有收到黑洞通知

  3. 步骤三:检查端口及安全组

  4. 步骤四:本地公网IP被云安全中心拦截

  5. 步骤五:检查防火墙配置

  6. 步骤六:检查远程桌面服务

  7. 步骤七:检查远程终端服务配置

  8. 步骤八:检查网络

  9. 步骤九:检查CPU负载、带宽及内存使用情况

  10. 步骤十:检查系统的安全策略设置

  11. 步骤十一:检查杀毒软件

  12. 步骤十二:Windows注册表配置异常

  13. 步骤十三:Windows RDP自签证书到期

步骤一:使用阿里云Workbench工具测试远程登录

通过阿里云提供的Workbench工具进行远程登录,Workbench工具在远程登录出现异常时会返回具体的错误信息及解决方案。测试步骤如下:

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 实例页面,找到需要连接的实例,单击该实例对应操作列下的远程连接

  5. 在弹出的远程与命令对话框中,单击Workbench远程连接对应的立即登录

  6. Workbench工具将自动填充登录目标实例所需的基本信息,请确认基本信息的正确性并输入登录的用户名和认证信息。并根据以下结果进行处理:

    • 如仍然无法登录,Workbench工具会返回错误提示和解决方案,请根据系统提示进行处理。处理完毕后重新使用Workbench工具进行远程登录测试。为了便于您解决问题,以下列举Workbench工具使用时常见的异常问题: Workbench远程连接问题(Windows)

    • 如可以通过Workbench工具正常登录,但无法通过本地服务器远程登录,说明远程连接的端口及服务正常,您可以自行排查。

步骤二:检查是否有收到黑洞通知

请检查是否有收到黑洞通知,黑洞期间无法支持公网访问服务器。更多信息,请参见阿里云黑洞策略

步骤三:检查端口及安全组

检查安全组规则是否有限制,具体操作如下:

  1. 登录ECS管理控制台

  2. 在顶部菜单栏左上角处,选择地域。

  3. 实例页面,单击对应的实例ID。

  4. 实例详情页面,单击安全组页签,在安全组列表区域,单击操作列的管理规则

  5. 选择安全组规则方向。

  6. 安全组规则页面,您可以选择以下任意一种方式添加安全组规则,具体操作,请参见添加安全组规则

    • 方式一:快速添加安全组规则

      • 授权策略允许

      • 端口范围RDP(3389)

      • 授权对象0.0.0.0/0(代表所有IP访问)

    • 方式二:手动添加安全组规则

      • 授权策略允许

      • 优先级1(代表安全规则中优先级最高,数字越小优先级越高)

      • 协议类型自定义(TCP)

      • 端口范围如果自定义远程端口为33899,则设置为33899

      • 授权对象0.0.0.0/0(代表所有IP访问)

  7. 通过IP:端口的方式进行远程桌面连接。连接方式类似如下。

    远程桌面

  8. 使用以下命令,进行端口测试,判断端口是否正常。

    telnet <IP> <Port>
    说明
    • <IP>指Windows实例的IP地址。

    • <Port>指Windows实例的RDP端口号。

    系统显示类似如下,比如执行telnet 192.168.0.1 4389命令,正常情况下返回结果类似如下。

    Trying 192.168.0.1 ...
    Connected to 192.168.0.1  4389.
    Escape character is '^]'

    如果端口测试失败,请参见使用ping命令正常但端口不通时的端口可用性探测说明进行排查。

步骤四:本地公网IP被云安全中心拦截

如果在一个本地客户端网络连接ECS服务器时多次输入错误的登录信息,会导致此IP远程登录ECS的请求被拦截。您可以在云安全中心的设置中,添加本地IP至白名单,这样就不会对本地IP远程登录此服务器进行拦截,具体操作如下:

  1. 登录云安全中心控制台

  2. 在左侧导航栏,选择系统配置 > 功能设置

  3. 设置页签的其它配置子页签,单击安全管控区域的配置,跳转至安全管控控制台。

  4. 在左侧导航栏,选择白名单管理 > IP白名单

  5. IP白名单页面,单击添加

    具体操作,请参见安全管控

步骤五:检查防火墙配置

说明

只有在已授权可关闭防火墙的情况下,才能进行该项排查。请确认防火墙是否已关闭,如果没有关闭,则通过调整防火墙配置策略修复,具体操作,请参见如何配置Windows实例远程连接的防火墙

  1. 使用VNC方式登录Windows实例。

    具体操作,请参见通过密码认证登录Windows实例

  2. 在菜单栏选择开始>控制面板

  3. 查看方式选择小图标,单击Windows 防火墙

  4. Windows防火墙界面,单击高级设置

  5. 启用防火墙配置。

    1. 高级安全 Windows 防火墙单击Windows防火墙属性

    2. 选择启用(推荐),单击用(A)

      建议将域配置文件专用配置文件公用配置文件选项卡下的防火墙全部启用。

  6. 高级安全 Windows 防火墙,单击入站规则,在右侧拉至最下方,右键单击远程桌面-用户模式(TCP-In),选择启动规则(E)

更多关于防火墙的设置信息,请参见设置Windows实例远程连接防火墙

步骤六:检查远程桌面服务

您可以查看Windows服务器的系统是否开启了远程桌面服务。具体操作如下:

  1. 使用VNC方式登录Windows实例。

    具体操作,请参见通过密码认证登录Windows实例

  2. 右键单击开始菜单,单击系统

  3. 系统界面,单击远程设置

    远程设置

  4. 远程桌面区域,选中允许远程连接到此计算机(L),单击确定

    设置远程

  5. 启动Remote Desktop Services服务。

    开始菜单中,选择管理工具>组件服务>服务(本地),在右侧的菜单窗口中找到Remote Desktop Services服务,检查是否启动,如果没有启动,则需启动。

    启动

  6. 加载远程桌面服务所依赖的驱动和服务。

    为了提高系统安全性,有时错误地将远程桌面服务所依赖的某些关键服务禁用,导致远程桌面服务异常。可通过以下操作进行检查。

    1. 右键单击开始菜单,单击运行,输入msconfig,单击确定

      image

    2. 系统配置对话框中,单击常规页签,选中正常动(N),单击确定

      image

    3. 重启ECS实例。

      具体操作,请参见重启实例

步骤七:检查远程终端服务配置

无法连接Windows实例的远程桌面可能是由于以下远程终端服务的配置异常。

说明

本示例以Windows Server 2008为例,其他Windows Server版本操作类似。

异常一:服务器侧自签名证书损坏

本地客户端如果是Windows 7以上版本的系统,会尝试与云服务器ECS建立TLS连接。若云服务器ECS侧用于TLS连接的自签名证书损坏,则会导致远程连接失败。

  1. 使用VNC方式登录Windows实例。

    具体操作,请参见通过密码认证登录Windows实例

  2. 选择开始>管理工具>远程桌面服务>远程桌面会话主机配置

    远程桌面会话主机配置

  3. 在连接区域,右键单击RDP-Tcp,然后单击属性

  4. RDP-Tcp属性窗口,将安全层修改成RDP安全层,单击确定

    RDP 安全层

  5. 在操作区域,单击禁用连接,再单击启用连接

    禁用连接

    启用连接

异常二:远程桌面会话主机配置连接被禁用

使用netstat命令查询,发现端口未正常监听。

使用VNC方式登录Windows实例后,发现远程桌面RDP连接属性配置文件被禁用,重新启用RDP-Tcp连接即可具体操作,请参见异常一:服务器侧自签名证书损坏

启用连接

异常三:终端服务器角色配置

在使用远程桌面访问Windows实例时,可能会出现如下提示。

这种情况一般是由于在服务器上安装配置了终端服务器,但是没有配置有效的访问授权导致的,可参考以下三种解决方案处理:

步骤八:检查网络

无法正常远程连接Windows实例时,需要先检查网络是否正常。

  1. 使用其他网络环境中(不同网段或不同运营商)的电脑连接对比测试,判断是本地网络问题还是服务器端的问题。

    • 如果是本地网络问题或运营商问题,请联系本地IT人员或运营商解决。

    • 如果是网卡驱动存在异常,则重新安装。排除本地网络故障后进行下一步检查。

  2. 在本地客户端使用ping命令测试与实例的网络连通性。

  3. 在实例中使用ping命令测试与客户端的连通性,提示一般故障错误时,请参见Windows实例ping外网地址提示“一般故障”进行解决。

步骤九:检查CPU负载、带宽及内存使用情况

无法正常远程连接Windows实例时,可能是因为CPU负载、带宽不足或内存不足导致。

  1. 根据是否存在CPU负载过高情况,选择相应操作。

    • 不存在CPU负载过高情况,请继续执行步骤2继续排查。

    • 如果CPU负载过高情况,请参考本步骤解决问题。

      • 检查CPU负载过高时,通过实例详情页面的终端登录实例,检查后台是否正在执行Windows Update操作。若存在Windows Update操作,则CPU负载过高是正常结果,请继续等待执行完成。

      • 若应用程序有大量的磁盘访问、网络访问行为、高计算需求,CPU负载过高是正常结果。建议您升配实例规格来解决资源瓶颈问题,具体操作,请参见升降配方式概述

        说明

        CPU负载过高的解决方法,请参见Windows系统ECS实例的CPU使用率较高的解决方法

  2. 排查是否存在公网带宽不足问题。

    无法远程连接可能是公网带宽不足导致的,具体排查方法如下。

    1. 登录ECS管理控制台

    2. 在顶部菜单栏左上角处,选择地域。

    3. 实例页面,单击对应的实例ID,在基本信息区域,查看当前使用带宽

      如果服务器带宽为0 Mbps,说明购买实例时没有购买公网带宽,您可以通过升级带宽解决,具体操作,请参见修改公网带宽

  3. 排查是否存在内存不足问题。

    远程连接Windows实例后,不能正常显示桌面并直接退出,也没有错误信息提示。这种情况可能是服务器内存不足导致,需要检查服务器的内存使用情况。具体操作如下。

    1. 使用VNC方式登录Windows实例。

      具体操作,请参见通过密码认证登录Windows实例

    2. 选择开始>管理工具>事件查看器,查看是否存在内存资源不足的警告日志信息。具体操作,请参见Windows 虚拟内存不足问题的处理

步骤十:检查系统的安全策略设置

您可以查看Windows服务器上是否有阻止远程桌面连接的相关安全策略。具体操作如下。

  1. 使用VNC方式登录Windows实例。

    具体操作,请参见通过密码认证登录Windows实例

  2. 选择开始>控制面板>管理工具,双击本地安全策略

  3. 本地安全策略界面中,单击IP安全策略,在本地计算机,根据是否存在相关的安全策略,选择相应操作。

    1. 存在相关安全策略,删除或重新编辑该安全策略

      • 删除安全策略:右键单击相关策略,选择除(D),在弹出的对话框,单击

        删除安全策略

      • 双击打开该IP的安全策略,重新配置以允许远程桌面连接,然后再使用远程桌面连接。

    2. 不存在相关安全策略,执行步骤十:检查系统的安全策略设置继续排查。

步骤十一:检查杀毒软件

使用远程桌面无法连接ECS实例可能是由于第三方杀毒软件设置导致,可通过以下方法进行解决。此处列举两个安全狗配置导致远程访问失败的解决案例。

  • 如果杀毒软件在后台执行,可通过VNC方式登录实例,将杀毒软件升级至最新版本或者直接删除。关于如何使用VNC登录实例,请参见连接方式概述

  • 请使用商业版杀毒软件,或者使用Microsoft Safety Scanner微软免费安全工具,在安全模式下扫描杀毒。关于更多安全扫描程序信息,请参见安全扫描程序

案例一:安全狗黑名单拦截

如果安装了安全狗后,出现以下情况,请确认防护软件中是否做了安全设置或对应的拦截。

  • 客户端本地无法远程桌面连接Windows实例,但其他区域可以远程连接。

  • 无法ping通服务器IP地址,并且通过tracert命令跟踪路由,发现无法到达服务器。

  • 云安全中心未拦截本地公网IP地址。

打开服务器安全狗,选择网络防火墙,单击超级黑白名右侧设置图标图标,如果超级黑名单中存在ECS实例公网IP,需将此黑名单规则删除,然后将公网IP添加到超级白名单

服务器安全狗

说明

如果云安全中心的阈值设置过低,则可能拦截实例公网IP。建议把清洗阈值调高,避免出现拦截实例公网IP的情况发生,更多信息,请参见DDoS基础防护

案例二:安全狗程序异常

使用VNC登录到Windows实例后,在系统桌面右下角,安全狗弹出错误提示,系统显示类似如下。

该问题可能是由于安全狗软件出现异常导致,您可以通过Windows系统卸载安全狗软件后,重启ECS实例,即可恢复网络。

步骤十二:Windows注册表配置异常

Windows注册表相关配置异常,可能导致RDP连接被阻断,您可以参考以下步骤来修复。

  1. 使用VNC连接ECS实例。

    具体操作,请参见使用VNC登录实例

  2. 运行框中输入regedit,单击确定,打开注册表编辑器。

    输入regedit

  3. 在注册表编辑器中,分别修改以下参数配置。

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp中的fEnableWinStation 参数值修改为1。

      fEnableWinStation

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server中的fDenyTSConnections参数值修改为0。

      fDenyTSConnections

步骤十三:Windows RDP自签证书到期

RDP自签证书过期,可能会导致无法远程登录,您可以参考以下步骤来修复。

  1. 使用VNC方式登录Windows实例。

    具体操作,请参见使用VNC登录实例

  2. 以管理员身份运行Windows PowerShell。

  3. 在Windows PowerShell对话框,执行如下命令,查看当前证书是否已过期。

    Get-Item 'Cert:\LocalMachine\Remote Desktop\*' | Select-Object NotAfter
  4. 如果证书过期,执行如下命令,删除自签证书并重启TermService服务。

    Remove-Item -Path 'Cert:\LocalMachine\Remote Desktop\*' -Force -ErrorAction SilentlyContinue
    Restart-Service TermService -Force

    重启TermService服务后,系统会自动生成新的自签证书。

  5. 执行如下命令,确认新的自签证书时间已更新。

    Get-Item 'Cert:\LocalMachine\Remote Desktop\*' | Select-Object NotAfter
    说明

    默认的RDP自签名证书有效期是半年。

存在明确的报错信息

相关文档