远程登录Windows实例发生端口冲突如何解决?

本文介绍远程登录Windows实例时,发生端口冲突导致无法登录的解决办法。

问题现象

当您在本地使用Windows操作系统自带的远程桌面连接工具MSTSC远程登录Windows实例,或在ECS控制台上使用Workbench远程登录Windows实例时,如果出现会话中断的相关提示,您将无法远程登录Windows实例。以MSTSC方式为例,提示如下:端口冲突

问题原因

Windows实例操作系统的远程连接端口(默认为3389)被其他进程或服务占用。

解决方案

重要
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。建议您提前创建快照,快照相关信息,请参见快照概述
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改相关安全信息。
  1. 使用VNC连接Windows实例。

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

  2. 打开Windows操作系统的任务管理器。

    说明

    以下操作步骤以Windows Server 2012为例,实际操作系统以您实际的Windows实例为准。

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

      使用VNC登录进入任务管理器

    2. 单击任务管理器

  3. 查看远程端口占用进程。

    1. 在任务管理器左上角,选择文件(F) > 运行新任务(N)

    2. 新建任务对话框,输入cmd

      打开cmd命令提示框

    3. 单击确定

    4. 在命令行窗口,执行netstat -ano|findstr "3389"命令,获取远程端口占用进程。

      查看端口占用进程

  4. 打开注册表编辑器。

    1. 在任务管理器左上角,选择文件(F) > 运行新任务(N)

    2. 新建任务对话框,输入regedit

      输入regedit进入注册表编辑器

    3. 单击确定

      如图所示,打开注册表编辑器。注册表编辑器

  5. 修改远程服务端口号。

    1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp路径下,选中PortNumber,然后单击鼠标右键,将数值数据(V)修改为您需要的端口号。

      tcp修改PortNumber

    2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp路径下,选中PortNumber,然后单击鼠标右键,将数值数据(V)修改为您需要的端口号。

      说明

      tcpRDP-TcpPortNumber数值数据(V)必须相同。

      RDP-Tcp修改PortNumber

      设置完毕,Windows操作系统将自动识别新的远程服务端口号。

  6. 重启Windows操作系统中的Remote Desktop Services服务。

    1. 打开Windows操作系统的任务管理器。

      具体操作,请参见步骤2

    2. 单击服务页签。

    3. 选中Remote Desktop Services,单击鼠标右键,然后单击重新启动(E)

      重启RDP服务

  7. 在安全组配置中添加远程服务端口号。

    具体操作,请参见添加安全组规则

  8. 重新使用MSTSC或Workbench远程登录Windows实例。

    • MSTSC:

      1. 选择以下任一方式启动远程桌面连接(MSTSC):

        • 使用Win+R组合键打开运行对话框,输入mstsc,然后单击确定mstsc

        • 单击开始图标,在搜索框中输入mstsc后,按回车键确认。

        • 选择开始 > 附件 > 远程桌面连接

      2. 填写待远程登录的Windows实例信息,然后单击连接

    • Workbench:

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