本文介绍远程登录Windows实例时,发生端口冲突导致无法登录的解决办法。
问题现象
当您在本地使用Windows操作系统自带的远程桌面连接工具MSTSC远程登录Windows实例,或在ECS控制台上使用Workbench远程登录Windows实例时,如果出现会话中断的相关提示,您将无法远程登录Windows实例。以MSTSC方式为例,提示如下:
问题原因
Windows实例操作系统的远程连接端口(默认为3389)被其他进程或服务占用。
解决方案
您可以通过结束占用远程桌面进程的服务,或修改远程桌面默认的端口号进行处理,具体操作步骤如下:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。建议您提前创建快照,快照相关信息,请参见快照概述。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改相关安全信息。
使用VNC连接Windows实例。
具体操作,请参见使用VNC连接Windows实例。
查看远程端口占用进程。示例操作系统:Windows Server 2022。
打开cmd命令提示符。
在命令行窗口,执行
netstat -ano|findstr "3389"
命令,获取远程端口占用进程。执行
tasklist /FI "PID eq <替换为上一步获取到的PID>"
命令,查看进程详情。本示例命令为tasklist /FI "PID eq 4176"
与tasklist /FI "PID eq 7164"
。其中返回的svchost.exe为远程桌面的进程,python.exe为占用远程桌面端口的进程。
方式一:结束占用远程桌面端口的进程。
执行
taskkill /PID <替换为要结束的进程PID> /F
。本示例命令为taskkill /PID 4176 /F
。重要为了避免对您的业务造成影响,阿里云强烈建议您在结束某一进程之前,务必充分了解该进程的具体作用,停止关键的业务进程或系统进程可能会导致业务中断,系统崩溃,实例无法连接等多种问题。
结束进程后,重新尝试使用MSTSC或Workbench远程登录Windows实例。
方式二:更改远程桌面端口。
打开regedit注册表编辑器。
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp路径下,选中PortNumber,然后单击鼠标右键,将数值数据(V)修改为您需要的端口号。
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp路径下,选中PortNumber,然后单击鼠标右键,将数值数据(V)修改为您需要的端口号。
说明tcp和RDP-Tcp中PortNumber的数值数据(V)必须相同。
设置完毕,Windows操作系统将自动识别新的远程服务端口号。
打开服务应用。
选中Remote Desktop Services,单击鼠标右键,然后单击重新启动(E)。
在安全组配置中添加新的远程服务端口号。
具体操作,请参见添加安全组规则。
重新尝试使用MSTSC或Workbench远程登录Windows实例。