问题原因
- 端口冲突:RDP默认端口 - 3389被其他应用占用。
- 安全协议协商失败:客户端与服务器无法完成RDP安全协议协商。 
解决方案
修复方案需要修改默认端口或安全协议,为防止配置错误导致无法登录,请先为系统盘手动创建单个快照对配置数据进行备份。
步骤一:检查并解决端口冲突
远程桌面服务 (RDP) 的默认端口3389可能被其他程序占用。
- 通过VNC连接登录ECS实例。 - 访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。 
- 进入目标实例详情页,单击远程连接,选择通过VNC远程连接。输入账号和密码,登录ECS实例。 
 
- 检查端口占用情况。 - 在任务栏搜索框,输入PowerShell并打开。查找占用远程连接端口(默认 - 3389)的进程PID。- netstat -ano | findstr :3389
- 将 - <PID>替换为进程号,查看该进程对应的应用程序。- tasklist |findstr <PID>
 
- 分析并处理。 - 正常情况:占用进程为 - svchost.exe,说明端口未被异常占用。请直接跳至步骤二:检查并调整安全协议。
- 异常情况:占用进程为其他应用程序,需要修改RDP默认端口。 
 
- 修改RDP默认端口。 - 选择新端口:建议在 - 10000-- 65535范围内选择一个未被占用的端口。可以在PowerShell中执行命令- netstat -ano | findstr :端口检查目标端口是否被占用。
- 修改注册表: - 在任务栏搜索框,输入 - regedit并打开注册表编辑器。
- 在左侧导航栏中,依次展开。在右侧列表中,找到并双击PortNumber。 
- 选择基数选项中的十进制,将数值数据改为选择的新端口号。 
 
- 重启并测试: - 进入目标实例详情页,单击重启,使修改生效。重启成功后,单击远程连接,选择通过Workbench远程连接。 
- 在登录实例窗口中选择终端连接,单击完整选项,在端口上填写新端口号。 重要- 修改RDP默认端口后,每次连接都需手动指定新端口。如果占用端口的进程可以安全关闭,且风险可控,可使用 - taskkill /f /pid <PID>关闭进程,避免每次连接都手动指定新端口。
 
 
步骤二:检查并调整安全协议
- 搜索 - gpedit.msc并打开本地组策略编辑器。
- 依次展开。在右侧列表中,找到并双击远程(RDP)连接要求使用指定的安全层。 
- 在远程(RDP)连接要求使用指定的安全层对话框中,选择已启用。在下方的安全层属性,选择RDP。 
- 单击确定保存设置,然后尝试重新连接。