无法远程连接Windows实例的处理方法
概述
本文主要介绍无法远程连接Windows实例的处理方法。
无法远程连接Windows实例的原因较多,请您根据实际情况,通过相应的排查方法,排查并解决无法远程连接Windows实例的问题。
需要快速登录Windows实例
如果您遇到的情况比较紧急,需要尽快登录Windows实例,请参见以下操作步骤,先检查ECS实例的状态,然后通过云助手向Windows实例发送命令或通过VNC登录,具体步骤如下:
步骤一:检查ECS实例的状态
无论何种原因导致无法远程登录ECS实例,请先检查实例的状态。只有当ECS实例为运行中状态时,才能对外提供业务访问。检查步骤如下:
- 登录云服务器管理控制台。
-
单击左侧导航栏中的实例,查看目标实例的状态。
- 目标实例不是运行中的状态,请参见ECS实例生命周期,根据实例的状态,选择对应的解决方案。
- 目标实例是运行中的状态,请参见下一步继续操作。
步骤二:通过阿里云云助手向Windows实例发送命令
请尝试通过阿里云云助手向Windows实例发送命令。云助手的使用步骤如下:
- 登录云服务器管理控制台。
-
单击左侧导航栏中的实例,在实例列表找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择发送远程命令(云助手)的方式。
- 输入您需要执行的命令后单击执行按钮,即可在未登录Linux实例的情况下执行命令。
步骤三:通过阿里云VNC工具进行远程登录
如果云助手无法使用或者无法满足您的使用需求,您还可以通过阿里云VNC工具进行远程登录,使用方法如下:
- 登录云服务器管理控制台。
- 单击左侧导航栏中的实例,在实例列表找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择VNC远程连接的方式。
-
输入VNC远程连接密码即可登录。
注意:
- 在首次连接或忘记VNC密码时,请单击修改远程连接密码,修改VNC的密码后重试。
- 通过VNC登录Windows实例后,需要输入Windows实例的用户名和密码。如果您忘记了Windows实例的密码,请重置Windows实例的密码,详情请参见重置实例登录密码,重置实例登录密码后需要重启ECS实例。
远程连接失败时没有明确的报错信息
在远程连接失败时,如果您没有收到系统返回的报错信息,请参见检查ECS实例的状态,确认ECS实例是运行中的状态,然后再根据以下步骤进行排查:
步骤一:使用阿里云Workbench工具测试远程登录
通过阿里云提供的Workbench工具进行远程登录,Workbench工具在远程登录出现异常时会返回具体的错误信息及解决方案。测试步骤如下:
- 登录云服务器管理控制台。
-
单击左侧导航栏中的实例,在实例列表中找到您需要远程登录的目标实例,单击远程连接,在弹出的页面中选择Workbench远程连接的方式。
-
Workbench工具将自动填充登录目标实例所需的基本信息,请确认基本信息的正确性并输入登录的用户名和认证信息。并根据以下结果进行处理:
-
如仍然无法登录,Workbench工具会返回错误提示和解决方案,请根据系统提示进行处理。处理完毕后重新使用Workbench工具进行远程登录测试。为了便于您解决问题,以下列举Workbench工具使用时常见的异常问题:
- Workbench工具远程连接Windows实例时提示连接超时
- Workbench远程连接Windows实例时提示“请检查地址、端口、用户名、密码等信息是否填写正确”
- 如可以通过Workbench工具正常登录,但无法通过本地服务器远程登录,说明远程连接的端口及服务正常,您可以自行排查,详情请参见远程连接的常见问题和ECS实例操作系统内部(GuestOS)常见问题与修复方案。
-
如仍然无法登录,Workbench工具会返回错误提示和解决方案,请根据系统提示进行处理。处理完毕后重新使用Workbench工具进行远程登录测试。为了便于您解决问题,以下列举Workbench工具使用时常见的异常问题:
步骤二:检查是否有收到黑洞通知
请检查是否有收到黑洞通知,黑洞期间无法支持公网访问服务器,详情请参阿里云黑洞策略。
步骤三:端口及安全组检查
进一步检查安全组规则是否有限制,具体操作如下:
- 登录云服务器管理控制台。
-
找到该实例,单击管理进入实例详情页面,在左侧导航栏,单击本实例安全组。找到安全组,单击操作列下的配置规则。
- 选择安全组规则的规则方向。
-
在安全组规则页面上,您可以选择以下任意一种方式添加安全组规则,详情请参见添加安全组规则。
-
方式一:快速添加安全组规则
- 授权策略:允许
- 端口范围:RDP(3389)
- 授权对象:0.0.0.0/0(代表所有IP访问)
-
方式二:手动添加安全组规则
- 授权策略:允许
- 优先级:1(代表安全规则中优先级最高,数字越小优先级越高)
- 协议类型:自定义(TCP)
- 端口范围:如果自定义远程端口为33899,则设置为33899
- 授权对象:0.0.0.0/0(代表所有IP访问)
-
方式一:快速添加安全组规则
-
通过“IP:端口”的方式进行远程桌面连接。连接方式类似如下。
-
通过上一步获取的端口,参见以下命令,进行端口测试,判断端口是否正常。如果端口测试失败,请参见使用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 '^]'
步骤四:本地公网IP被云安全中心拦截
如果在一个客户端网络连接ECS服务器多次输入错误的登录信息,就会导致此IP远程登录ECS的请求被拦截,此类情况可以在云安全中心的设置中,添加本地IP至白名单,这样就不会对本地IP远程登录此服务器进行拦截,具体操作如下:
步骤五:远程桌面服务检查
您可以查看Windows服务器的系统是否开启了远程桌面服务。具体操作如下:
- 使用控制台远程连接功能登录到Windows实例。
- 右键单击我的电脑,选择属性>高级系统设置。
-
在系统属性窗口,选择远程选项卡,在远程桌面区域,确认已勾选允许远程连接到此计算机,单击确定。
-
在开始菜单中单击管理工具>组件服务>服务(本地),在右侧的菜单窗口中找到Remote Desktop Services服务,检查是否启动,如果没有启动,则需启动。
- 用户为了提高系统安全性,有时错误的将远程桌面服务所依赖的某些关键服务禁用,导致远程桌面服务异常。可通过以下操作进行检查。
步骤六:网络检查
无法正常远程连接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实例。
-
选择开始>控制面板>管理工具,双击本地安全策略。
- 在弹出的窗口中,单击IP安全策略,查看是否有相关的安全策略。
-
如果有,右键单击相关策略,选择删除,或双击该IP的安全策略来重新配置以允许远程桌面连接。然后再使用远程桌面连接。
步骤十:远程终端服务的配置检查
无法连接Windows实例远程桌面可能是由于以下远程终端服务的配置异常而导致。
异常一:服务器侧自签名证书损坏
客户端如果是Windows 7以上版本的系统,会尝试与服务器建立TLS连接。若服务器侧用于TLS连接的自签名证书损坏,则会导致远程连接失败。
- 使用控制台远程连接功能登录到Windows实例。
-
选择开始>管理工具>远程桌面服务,然后双击远程桌面会话主机配置。
-
选择RDP-Tcp,在RDP-Tcp属性窗口,将安全层修改成RDP安全层。
- 在操作栏单击禁用连接,再单击启用连接即可。
异常二:远程桌面会话主机配置连接被禁用
使用netstat命令查询,发现端口未正常监听。使用控制台远程连接功能登录到Windows实例后,发现远程桌面RDP连接属性配置文件被禁用。参见服务器侧自签名证书损坏,找到RDP连接属性配置文件,如果RDP-Tcp被禁用,单击启用连接即可。
异常三:终端服务器角色配置
用户在使用远程桌面访问Windows实例时,有时会出现如下提示。
这种情况一般是由于在服务器上安装配置了终端服务器,但是没有配置有效的访问授权导致的。可参见以下三种解决方案处理:
- Windows服务器远程桌面提示“没有远程桌面授权服务器可以提供许可证”错误
- 远程登录Windows实例报“远程桌面用户组没有该权限”错误
- 如果是安装了终端服务器角色导致的,需要登录服务器鼠标右键单击计算机,选择管理>角色>删除角色。
步骤十一:杀毒软件检查
无法连接远程桌面可能是由于第三方杀毒软件设置导致,可通过以下方法进行解决。此处列举两个安全狗配置导致远程访问失败的解决案例。
- 如果杀毒软件在后台执行,可通过实例详情页面的终端登录,将杀毒软件升级至最新版本或者直接删除。
- 请使用商业版杀毒软件,或者使用Microsoft Safety Scanner微软免费安全工具,在安全模式下扫描杀毒,相关信息请参见安全扫描程序。
案例一:安全狗黑名单拦截
如果安装了安全狗后,出现以下情况,请确认防护软件中是否做了安全设置或对应的拦截。
- 客户端本地无法远程桌面连接Windows实例,但其他区域可以远程连接。
- 无法ping通服务器IP地址,且通过tracert命令跟踪路由,发现无法到达服务器。
- 云盾未拦截本地公网IP地址。
可打开服务器安全狗进行检查,选择网络防火墙。单击超级黑名单的规则设置,如果黑名单中存在实例公网IP,则将此黑名单规则删除,然后将公网IP添加到超级白名单。
说明:如果云盾的阈值设置过低,则可能拦截实例公网IP。建议把清洗阈值调高,避免出现拦截实例公网IP的情况发生,具体请参见DDoS基础防护。
案例二:安全狗程序异常
使用控制台远程连接功能登录到Windows实例后,在系统桌面右下角,安全狗弹出错误提示,系统显示类似如下。该问题可能是由于安全狗软件出现异常导致的。可通过Windows系统卸载安全狗软件后,重启服务器,网络即可恢复。
我有话说: