远程桌面无法连接到Windows实例的快速排查方法

概述

本文介绍远程桌面无法连接到Windows实例的快速排查方法。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

当您的云服务器无法远程登录时,我们建议您首先检查是否可以通过控制台远程登录,如何通过阿里云VNC工具远程登录,请参见通过VNC远程登录Windows实例。再参见以下排查方法,排查无法远程连接Windows实例的原因。

步骤一:使用管理终端登录实例

无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,确认实例还有响应,没有完全宕机,然后再按原因分类进行故障排查。

  1. 登录ECS管理控制台,单击左侧导航栏中的实例,在目标实例右侧单击远程连接
  2. 在首次连接或忘记连接密码时,单击修改远程连接密码,修改远程连接的密码。
  3. 然后通过远程连接密码连接实例。

步骤二:登录密码检查

在确保登录密码正确的情况下,确认之前是否曾重置过密码。检查重置实例密码后是否未重启实例,如果存在实例密码修改记录,但无重启实例记录,则参考以下操作步骤重启实例。

  1. 登录云服务器管理控制台,单击左侧导航栏中的实例
  2. 在页面顶部的选择对应的地域,目标实例右侧单击更多>实例状态>重启,再单击确定即可。

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

进一步检查端口是否正常,以及安全组规则是否有限制。

  1. 请参见如何查看和修改Windows实例远程桌面的默认端口,检查实例远程链接的端口是否被修改。如果登录方式改变或者ECS安全组规则中未放行修改后的端口号,则参考如下步骤放行修改后的端口。
    说明:ECS的安全组规则中默认放行3389端口。修改了远程桌面的端口后,需要在安全组规则中放行修改后的端口号。
    1. 登录ECS管理控制台,单击实例
    2. 在顶部菜单栏左上角处,选择地域。
    3. 实例列表页面,单击对应的实例ID。
    4. 实例详情页面,单击安全组,在安全组列表区域,单击对应的安全组ID。
      Dingtalk_20210427162110.jpg
    5. 选择安全组规则的规则方向。
    6. 安全组规则页面上,您可以选择以下任意一种方式添加安全组规则,详情请参见添加安全组规则
      • 方式一:快速添加安全组规则
        • 授权策略:允许
        • 端口范围:RDP(3389)
        • 授权对象:0.0.0.0/0(代表所有IP访问)
      • 方式二:手动添加安全组规则
        • 授权策略:允许
        • 优先级:1(代表安全规则中优先级最高,数字越小优先级越高)
        • 协议类型:自定义(TCP)
        • 端口范围:如果自定义远程端口为33899,则设置为33899
        • 授权对象:0.0.0.0/0(代表所有IP访问)
    7. 通过“IP:端口”的方式进行远程桌面连接。连接方式类似如下。
  2. 通过上一步获取的端口,参见以下命令,进行端口测试,判断端口是否正常。如果端口测试失败,请参见能够ping通服务器的同时端口不通的排查方法进行排查。
    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 '^]'
  3. 检查Windows远程端口设置是否超出范围,如果超出范围,您需将端口重新修改为0到65535之间,且没有被占用的其它端口,具体操作请参见以下操作。
    1. 登录实例,依次选择开始>运行,输入regedit,然后单击确认
    2. 打开注册表编辑器,依次选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
    3. 双击PortNumber,单击十进制,将原端口由“113322”修改为0到65535之间且不与当前端口冲突的端口,例如5588等端口。
      说明:113322为PortNumber右侧显示的端口号。
    4. 再打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Tenninal Server\WinStations\RDP-Tcp
    5. 双击PortNumber,单击十进制,将原端口“113322”修改为与第3步一致的端口号。
    6. 然后重启主机,确认远程连接成功。

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

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

  1. 通过阿里云VNC工具远程登录Windows实例,详情请参见通过VNC远程登录Windows实例
  2. 右键单击我的电脑,选择属性>高级系统设置
  3. 系统属性窗口,选择远程选项卡,在远程桌面区域,确认已勾选允许远程连接到此计算机
  4. 用户为了提高系统安全性,有时错误的将远程桌面服务所依赖的某些关键服务禁用,导致远程桌面服务异常。可通过以下操作进行检查。
    1. 登录到Windows实例。
    2. 选择开始>运行。 输入msconfig,单击确定。 
    3. 在弹出的窗口中,选择常规选项卡,选择正常启动,然后重启服务器即可。 

步骤五:网络检查

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

  1. 用其他网络环境中(不同网段或不同运营商)的电脑连接对比测试,判断是本地网络问题还是服务器端的问题。如果是本地网络问题或运营商问题,请联系本地IT人员或运营商解决。如果是网卡驱动存在异常,则重新安装。排除本地网络故障后进行下一步检查。
  2. 在客户端使用ping命令测试与实例的网络连通性。
  3. 在实例中使用ping命令测试与客户端的连通性,提示“一般故障”的错误,请参Windows实例ping外网地址提示“一般故障”进行解决。

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

  • 确认是否存在CPU负载过高的情况,如果存在,则参考本步骤解决问题,如果不存在,则执行下一步步骤。
    • 检查CPU负载过高时,通过实例详情页面的终端登录实例,检查后台是否正在执行Windows Update操作。
    • 运行Windows Update来安装最新的微软安全补丁。
    • 若应用程序有大量的磁盘访问、网络访问行为、高计算需求,CPU负载过高是正常结果。您可以尝试升配实例规格来解决资源瓶颈问题。
    • CPU负载过高的解决方法,请参见Windows系统ECS实例的CPU使用率较高的解决方法
  • 无法远程连接可能是公网带宽不足导致的,具体排查方法如下。可通过续费ECS实例,然后重启实例解决。详情请参见手动续费,或者请参见自动续费

    1. 登录ECS管理控制台。
    1. 找到该实例, 单击管理进入实例详情页面,查看网络监控数据。
    1. 检查服务器带宽是否为“1k”或“0k”。如果购买实例时没有购买公网带宽,后来升级了公网带宽,续费的时候没有选择续费带宽,带宽就会变成“1k”。
  • 远程连接输入用户密码登录后,不能正常显示桌面直接退出,也没有错误信息。这种情况可能是服务器内存不足导致的,需要查看一下服务器的内存使用情况。具体操作如下。
    1. 使用控制台远程连接功能登录到Windows实例。
    1. 选择开始>控制面板>管理工具,双击事件查看器。查看一下是否有内存资源不足的警告日志信息。如有日志信息提示内存不足,具体解决方法参考Windows 虚拟内存不足问题的处理

步骤七:防火墙配置检查

您只有在已授权可关闭防火墙的情况下,才能进行该项排查。确认防火墙是否已关闭,如果没有关闭,则通过调整防火墙配置策略修复,具体操作请参见如何配置Windows实例远程连接的防火墙。完成操作后,请再进行远程连接,确认连接成功。本文以Windows Server 2012初次登录开启防火墙为例。新购的Windows 2012实例,首次连接服务器是可以的。连接服务器并激活系统后,会提示如下图片中的信息,用户需要单击 ,如果单击 ,服务器会自动开启公网的防火墙,连接会直接断开。此问题可参考以下步骤进行解决。

  1. 使用控制台远程连接功能登录到Windows实例。
  1. 在菜单栏选择开始>控制面板 。
  1. 查看方式选择小图标,单击Windows 防火墙。 
  1. 在Windows防火墙窗口,单击高级设置
  1. 在弹出的窗口中,单击入站规则,在右侧拉至最下方,右键单击远程桌面-用户模式(TCP-In),选择启动规则。 
  1. 返回上一个页面, 单击Windows防火墙属性。 
  2. 选择启用(推荐),单击应用

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

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

步骤八:系统的安全策略设置

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

  1. 使用控制台远程连接功能登录到Windows实例。
  1. 选择开始>控制面板>管理工具,双击本地安全策略。 
  1. 在弹出的窗口中,单击IP安全策略,查看是否有相关的安全策略。
  2. 如果有,右键单击相关策略,选择删除,或双击该IP的安全策略来重新配置以允许远程桌面连接。然后再使用远程桌面连接。 

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

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

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

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

  1. 使用控制台远程连接功能登录到Windows实例。
  1. 选择开始>管理工具>远程桌面服务,然后双击远程桌面会话主机配置。 
  1. 选择RDP-Tcp。在RDP-Tcp属性窗口,将安全层修改成RDP安全层。 
  2. 在操作栏单击禁用连接,再单击启用连接即可。 

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

使用netstat命令查询,发现端口未正常监听。使用控制台远程连接功能登录到Windows实例后,发现远程桌面RDP连接属性配置文件被禁用。参考服务器侧自签名证书损坏找到RDP连接属性配置文件,如果RDP-Tcp被禁用,单击启用连接即可。

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

  1. 用户在使用远程桌面访问Windows实例时,有时会出现如下提示。
  2. 这种情况一般是由于在服务器上安装配置了终端服务器,但是没有配置有效的访问授权导致的。可参见如下两个解决方案处理。

步骤十:杀毒软件检查

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

  • 如果杀毒软件在后台执行,可通过实例详情页面的终端登录,将杀毒软件升级至最新版本或者直接删除。
  • 请使用商业版杀毒软件,或者使用Microsoft Safety Scanner微软免费安全工具,在安全模式下扫描杀毒,相关信息请参见安全扫描程序

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

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

  • 客户端本地无法远程桌面连接Windows实例,但其他区域可以远程连接。
  • 无法ping通服务器IP地址,且通过tracert命令跟踪路由,发现无法到达服务器。
  • 云盾未拦截本地公网IP地址。

可打开服务器安全狗进行检查,选择网络防火墙。单击超级黑名单规则设置,如果黑名单中存在实例公网IP,则将此黑名单规则删除,然后将公网IP添加到超级白名单

说明:如果云盾的阈值设置过低,则可能拦截实例公网IP。建议把清洗阈值调高,避免出现拦截实例公网IP的情况发生,具体请参见DDoS基础防护

案例二:安全狗程序异常

使用控制台远程连接功能登录到Windows实例后,在系统桌面右下角,安全狗弹出错误提示,系统显示类似如下。该问题可能是由于安全狗软件出现异常导致的。可通过Windows系统卸载安全狗软件后,重启服务器,网络即可恢复。

步骤十一:尝试重启实例

若用阿里云提供的远程连接功能仍无法成功连接实例,请尝试重启实例。重启操作会使实例停止工作,从而中断业务,请谨慎执行。

提示:重启实例前,需给实例创建快照,用于数据备份或者制作镜像。创建快照的方法请参见创建快照

  1. 登录ECS管理控制台,单击左侧导航栏中的实例
  2. 在页面顶部的选择对应的地域,在目标实例右侧单击更多>实例状态>重启,再单击确认即可。

相关文档

适用于

  • 云服务器ECS