![Windows Server 2012 R2 - 更改 RDP 端口](https://linux22.com/image/1528350/Windows%20Server%202012%20R2%20-%20%E6%9B%B4%E6%94%B9%20RDP%20%E7%AB%AF%E5%8F%A3.png)
按照 Microsoft 和其他 Google 搜索结果中的说明操作似乎很简单。不幸的是,在更改 Reg KeyHKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
并允许新端口通过防火墙后,我得到了可怕的“由于在客户端代码 0x1104 处检测到协议错误,此会话将断开连接”
我已经阅读了几篇关于如何修复此问题的文章;但是,它们都需要一个域,而这是一个托管公司(Go-Daddy)的独立 Windows Server 2012 R2 服务器。
我肯定我遗漏了一些东西,但我不确定是什么。任何帮助都将不胜感激。谢谢。
答案1
错误的可能原因“由于在客户端代码 0x1104 处检测到协议错误,此会话将断开连接”您尝试使用的端口与系统上已使用的端口存在冲突。
您可以运行命令netstat -ano | findstr ":9999"
(其中9999
是您的端口号)来查找正在侦听您的端口的任何正在运行的进程的 PID。netstat 输出中的最后一列是进程的 PID。使用 Sysinternals Process Explorer 等工具查找使用该 PID 的进程。如果它不是您的进程,那么您就找到了冲突,在这种情况下,您应该将远程桌面配置为侦听另一个端口。
答案2
仔细检查您的端口。看来我选择的原始端口已被另一个应用程序使用。尝试另一个端口后,我能够让它正常工作。
给遇到此问题的人的参考:
- https://www.adminsub.net/tcp-udp-port-finder- tcp/udp 注册端口
- https://www.lisenet.com/2014/change-default-rdp-port-on-windows-server-20082012/- 关于更改端口和提高 rdp 安全性的良好说明
以及微软官方知识库: https://support.microsoft.com/en-us/help/306759/how-to-change-the-listening-port-for-remote-desktop
答案3
就我而言,这是因为思科防火墙在我们连接的服务器前面。此防火墙根据 IP 列入白名单,并劫持任何 TCP 连接以显示其登录页面。这在浏览器上工作正常,但在远程桌面上效果不佳。
远程桌面看到的是 HTTP 响应而不是其自己的协议,并显示错误:
由于客户端代码 0x1104 检测到协议错误,此会话将断开连接
因此,如果收到此错误,请尝试使用浏览器而不是 RDP 打开主机名,看看是否会出现 Cisco 防火墙登录页面。