本文介绍远程桌面无法连接到Windows实例的快速排查方法。
当您的云服务器无法远程登录时,我们建议您首先检查是否可以通过控制台远程登录,如何通过阿里云VNC工具远程登录,请参见通过VNC远程登录Windows实例。再参见以下排查方法,排查无法远程连接Windows实例的原因。
步骤一:使用管理终端登录实例
无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功能进行连接,确认实例还有响应,没有完全宕机,然后再按原因分类进行故障排查。
登录ECS管理控制台,单击左侧导航栏中的实例,在目标实例右侧单击远程连接。
在首次连接或忘记连接密码时,单击修改远程连接密码,修改远程连接的密码。
然后通过远程连接密码连接实例。
步骤二:登录密码检查
在确保登录密码正确的情况下,确认之前是否曾重置过密码。检查重置实例密码后是否未重启实例,如果存在实例密码修改记录,但无重启实例记录,则参考以下操作步骤重启实例。
登录ECS管理控制台,单击左侧导航栏中的实例。
在页面顶部的选择对应的地域,目标实例右侧单击>实例状态>重启,再单击确定即可。
步骤三:端口及安全组检查
进一步检查端口是否正常,以及安全组规则是否有限制。
请参见如何查看和修改Windows实例远程桌面的默认端口,检查实例远程链接的端口是否被修改。如果登录方式改变或者ECS安全组规则中未放行修改后的端口号,则参考如下步骤放行修改后的端口。
说明ECS的安全组规则中默认放行3389端口。修改了远程桌面的端口后,需要在安全组规则中放行修改后的端口号。
登录ECS管理控制台,单击实例。
在顶部菜单栏左上角处,选择地域。
在实例列表页面,单击对应的实例ID。
在实例详情页面,单击安全组,在安全组列表区域,单击对应的安全组ID。
选择安全组规则的规则方向。
在安全组规则页面上,您可以选择以下任意一种方式添加安全组规则,详情请参见添加安全组规则。
方式一:快速添加安全组规则
授权策略:允许
端口范围:RDP(3389)
授权对象:0.0.0.0/0(代表所有IP访问)
方式二:手动添加安全组规则
授权策略:允许
优先级:1(代表安全规则中优先级最高,数字越小优先级越高)
协议类型:自定义(TCP)
端口范围:如果自定义远程端口为33899,则设置为33899
授权对象:0.0.0.0/0(代表所有IP访问)
通过“IP:端口”的方式进行远程桌面连接。连接方式类似如下。
通过上一步获取的端口,参见以下命令,进行端口测试,判断端口是否正常。如果端口测试失败,请参见无法ping通ECS实例公网IP的排查方法进行排查。
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 '^]'
检查Windows远程端口设置是否超出范围,如果超出范围,您需将端口重新修改为0到65535之间,且没有被占用的其它端口,具体操作请参见以下操作。
登录实例,依次选择开始>运行,输入regedit,然后单击确认。
打开注册表编辑器,依次选择HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Terminal Server>Wds>rdpwd>Tds>tcp。
双击PortNumber,单击十进制,将原端口由“113322”修改为0到65535之间且不与当前端口冲突的端口,例如5588等端口。
说明113322为PortNumber右侧显示的端口号。
再打开HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Terminal Server>Wds>rdpwd>Tds>tcp。
双击PortNumber,单击十进制,将原端口“113322”修改为与第3步一致的端口号。
然后重启主机,确认远程连接成功。
步骤四:远程桌面服务检查
您可以查看Windows服务器的系统是否开启了远程桌面服务。具体操作如下:
通过阿里云VNC工具远程登录Windows实例,详情请参见通过VNC远程登录Windows实例。
右键单击我的电脑,选择属性>高级系统设置。
在系统属性窗口,选择远程选项卡,在远程桌面区域,确认已勾选允许远程连接到此计算机。
用户为了提高系统安全性,有时错误的将远程桌面服务所依赖的某些关键服务禁用,导致远程桌面服务异常。可通过以下操作进行检查。
登录到Windows实例。
选择开始>运行。 输入
msconfig
,单击确定。在弹出的窗口中,选择常规选项卡,选择正常启动,然后重启服务器即可。
步骤五:网络检查
无法正常远程连接Windows实例时,需要先检查网络是否正常。
用其他网络环境中(不同网段或不同运营商)的电脑连接对比测试,判断是本地网络问题还是服务器端的问题。如果是本地网络问题或运营商问题,请联系本地IT人员或运营商解决。如果是网卡驱动存在异常,则重新安装。排除本地网络故障后进行下一步检查。
在客户端使用ping命令测试与实例的网络连通性。
网络异常时,请参见网络异常时如何抓取数据包进行排查。
当出现ping丢包或ping不通时,请参见使用ping命令丢包或不通时的链路测试方法进行排查。
如果出现间歇性丢包,ECS实例的网络一直处于不稳定状态时,请参见使用ping命令测试ECS实例的IP地址间歇性丢包进行解决。
在实例中使用ping命令测试与客户端的连通性,提示“一般故障”的错误,请参见Windows实例ping外网地址提示“一般故障”进行解决。
步骤六:检查CPU负载、带宽及内存使用情况
确认是否存在CPU负载过高的情况,如果存在,则参考本步骤解决问题,如果不存在,则执行下一步步骤。
检查CPU负载过高时,通过实例详情页面的终端登录实例,检查后台是否正在执行Windows Update操作。
运行Windows Update来安装最新的微软安全补丁。
若应用程序有大量的磁盘访问、网络访问行为、高计算需求,CPU负载过高是正常结果。您可以尝试升配实例规格来解决资源瓶颈问题。
CPU负载过高的解决方法,请参见Windows系统ECS实例的CPU使用率较高的解决方法。
无法远程连接可能是公网带宽不足导致的,具体排查方法如下。可通过续费ECS实例,然后重启实例解决。详情请参见手动续费,或者请参见自动续费。
登录ECS管理控制台。
找到该实例, 单击管理进入实例详情页面,查看网络监控数据。
检查服务器带宽是否为“1k”或“0k”。如果购买实例时没有购买公网带宽,后来升级了公网带宽,续费的时候没有选择续费带宽,带宽就会变成“1k”。
远程连接输入用户密码登录后,不能正常显示桌面直接退出,也没有错误信息。这种情况可能是服务器内存不足导致的,需要查看一下服务器的内存使用情况。具体操作如下。
使用控制台远程连接功能登录到Windows实例。
选择开始>控制面板>管理工具,双击事件查看器。查看一下是否有内存资源不足的警告日志信息。如有日志信息提示内存不足,具体解决方法参考Windows 虚拟内存不足问题的处理。
步骤七:防火墙配置检查
您只有在已授权可关闭防火墙的情况下,才能进行该项排查。确认防火墙是否已关闭,如果没有关闭,则通过调整防火墙配置策略修复,具体操作请参见如何配置Windows实例远程连接的防火墙。完成操作后,请再进行远程连接,确认连接成功。本文以Windows Server 2012初次登录开启防火墙为例。新购的Windows 2012实例,首次连接服务器是可以的。连接服务器并激活系统后,在弹出的网络对话框中,您需要单击是,如果单击否,服务器会自动开启公网的防火墙,连接会直接断开。此问题可参考以下步骤进行解决。
使用控制台远程连接功能登录到Windows实例。
在菜单栏选择开始>控制面板 。
查看方式选择小图标,单击Windows 防火墙。
在Windows防火墙窗口,单击高级设置。
在弹出的窗口中,单击入站规则,在右侧拉至最下方,右键单击远程桌面-用户模式(TCP-In),选择启动规则。
返回上一个页面, 单击Windows防火墙属性。
选择启用(推荐),单击应用。
说明建议将域配置文件、专用配置文件、公用配置文件选项卡下的防火墙全部启用。
更多关于防火墙的设置,请参考设置Windows实例远程连接防火墙。
步骤八:系统的安全策略设置
您可以查看Windows服务器上是否有阻止远程桌面连接的相关安全策略。具体操作如下。
使用控制台远程连接功能登录到Windows实例。
选择开始>控制面板>管理工具,双击本地安全策略。
在弹出的窗口中,单击IP安全策略,查看是否有相关的安全策略。
如果有,右键单击相关策略,选择删除,或双击该IP的安全策略来重新配置以允许远程桌面连接。然后再使用远程桌面连接。
步骤九:远程终端服务的配置检查
无法连接Windows实例远程桌面可能是由于以下远程终端服务的配置异常而导致。
异常一:服务器侧自签名证书损坏
客户端如果是Windows 7以上版本的系统,会尝试与服务器建立TLS连接。若服务器侧用于TLS连接的自签名证书损坏,则会导致远程连接失败。
使用控制台远程连接功能登录到Windows实例。
选择开始>管理工具>远程桌面服务,然后双击远程桌面会话主机配置。
选择RDP-Tcp。在RDP-Tcp属性窗口,将安全层修改成RDP安全层。
在操作栏单击禁用连接,再单击启用连接即可。
异常二:远程桌面会话主机配置连接被禁用
使用netstat命令查询,发现端口未正常监听。使用控制台远程连接功能登录到Windows实例后,发现远程桌面RDP连接属性配置文件被禁用。参考异常一:服务器侧自签名证书损坏找到RDP连接属性配置文件,如果RDP-Tcp被禁用,单击启用连接即可。
异常三:终端服务器角色配置
用户在使用远程桌面访问Windows实例时,有时会出现如下提示。
这种情况一般是由于在服务器上安装配置了终端服务器,但是没有配置有效的访问授权导致的。可参见如下两个解决方案处理。
步骤十:杀毒软件检查
无法连接远程桌面可能是由于第三方杀毒软件设置导致,可通过以下方法进行解决。此处列举两个安全狗配置导致远程访问失败的解决案例。
如果杀毒软件在后台执行,可通过实例详情页面的终端登录,将杀毒软件升级至最新版本或者直接删除。
请使用商业版杀毒软件,或者使用Microsoft Safety Scanner微软免费安全工具,在安全模式下扫描杀毒,相关信息请参见安全扫描程序。
案例一:安全狗黑名单拦截
如果安装了安全狗后,出现如下情况,请确认防护软件中是否做了安全设置或对应的拦截。
客户端本地无法远程桌面连接Windows实例,但其他区域可以远程连接。
无法ping通服务器IP地址,且通过tracert命令跟踪路由,发现无法到达服务器。
云安全中心未拦截本地公网IP地址。
可打开服务器安全狗进行检查,选择网络防火墙。单击超级黑名单的规则设置,如果黑名单中存在实例公网IP,则将此黑名单规则删除,然后将公网IP添加到超级白名单。
如果云安全中心的阈值设置过低,则可能拦截实例公网IP。建议把清洗阈值调高,避免出现拦截实例公网IP的情况发生,具体请参见DDoS基础防护。
案例二:安全狗程序异常
使用控制台远程连接功能登录到Windows实例后,在系统桌面右下角,安全狗弹出错误提示,系统显示类似如下。该问题可能是由于安全狗软件出现异常导致的。可通过Windows系统卸载安全狗软件后,重启服务器,网络即可恢复。
步骤十一:尝试重启实例
若用阿里云提供的远程连接功能仍无法成功连接实例,请尝试重启实例。重启操作会使实例停止工作,从而中断业务,请谨慎执行。
重启实例前,需给实例创建快照,用于数据备份或者制作镜像。创建快照的方法请参见创建快照。
登录ECS管理控制台,单击左侧导航栏中的实例。
在页面顶部的选择对应的地域,在目标实例右侧单击更多>实例状态>重启,再单击确认即可。