206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
通过远程桌面连接Windows实例提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


通过远程桌面连接Windows实例提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?

本文介绍通过远程桌面连接Windows实例提示“由于协议错误,会话将被中断。请重新连接到远程计算机。”错误的解决方案。

问题描述

远程连接Windows系统的ECS实例时,提示协议错误。具体的报错显示如下:

116

问题原因

可能导致该问题的部分原因如下:

  • 目标实例的远程会话配置错误。当远程会话配置错误,远程连接时会出现协议错误的提示。请参考方案一:修改目标实例的远程会话配置进行修复。

  • 目标实例的远程连接端口被其他应用占用。Windows系统默认远程桌面连接端口号为3389,当该端口被其他程序占用时,远程连接服务将无法正常运行。请参考方案二:修改远程连接端口号或方案三:关闭占用远程连接端口的应用进程进行修复。

解决方案

根据实际情况,选择对应方案进行解决。本文以Windows Server 2016操作系统为例。

方案一:修改目标实例的远程会话配置

  1. 通过VNC连接Windows实例。

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

  2. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行(R),输入gpedit.msc命令,打开本地组策略编辑器

  3. 本地组策略编辑器窗口,选择计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 安全

  4. 安全目录中,双击远程(RDP)连接要求使用指定的安全层

    111
  5. 在弹出对话框中选择已启用 ,在安全层选项中选择RDP,单击确定222

  6. 执行以下命令,完成策略更新,使以上的设置生效。

    1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行(R),输入cmd命令,打开命令行。

    2. 执行gpupdate命令,完成策略更新。

      系统显示类似如下图。

  7. 再次进行远程连接,确认问题已经修复。

方案二:修改远程连接端口号

  1. 通过VNC连接Windows实例。

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

  2. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行(R),输入regedit,打开注册表编辑器

  3. 注册表编辑器窗口,依次进入以下目录。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  4. 双击RDP-Tcp目录中名称为PortNumber的注册表项。112

  5. 在编辑页面中,选择基数选项中的十进制,修改数值数据中的值,该值即为远程桌面使用的端口号。

    113
    说明

    图中的3389端口号为远程连接的默认端口号,仅作为示例。请根据实际情况修改成所需的端口号

  6. 重启Windows实例以更新配置。

    • 方式一:在ECS控制台上重启Windows实例,具体操作,请参见重启实例。

    • 方式二:在远程连接的Windows实例上,选择Dingtalk_20210510142550.jpg > 电源管理 > 重启

      win2016重启服务器

方案三:关闭占用远程连接端口的应用进程

  1. 通过VNC连接Windows实例。

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

  2. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行(R),输入cmd命令,打开命令行

  3. 执行以下命令,获取占用远程连接端口的进程号(PID)

    netstat -ano |findstr 3389
    说明

    此处以远程连接默认端口号3389为例,需要以实际情况为准。

  4. 执行以下命令,根据PID查看进程对应的应用程序。

    正常情况下,远程连接端口被svchost.exe进程占用。如果远程连接端口被svchost.exe之外的进程占用,则表明远程连接端口的确被其他应用所占用。

    tasklist |findstr [$PID]
    说明

    [$PID]指上一步获取的PID。

  5. 您可以执行以下命令,根据PID关闭指定的进程,释放被占用的远程连接端口。

    重要

    关闭进程属于风险操作,请确保关闭进程后不影响业务运行,方可执行此操作。

    taskkill /f /pid [$PID]
  6. 再次进行远程连接,确认问题已经修复。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!