除了 3389 端口外,RDP 无法在其他端口上运行

除了 3389 端口外,RDP 无法在其他端口上运行

我们有一台服务器 2008 r2 虚拟机,它充当面向公众的 RDP 终端(我知道我知道,这是一场完全不同的斗争)。我试图将 RDP 设置为使用除 3389 之外的任何端口,但每当我更改端口时,我都会收到“此计算机不可用”消息。我正在做的是:

1)在注册表中更改 RDP 使用的端口(HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Terminal Server > WinStations > RDP-Tcp > PortNumber 字段)

2)将允许端口 3389 上的流量通过的 Symantec 防火墙规则更改为端口(例如)4000。(Windows 防火墙已被禁用,并且我已确保该服务未在 services.msc 中运行)

3)尝试从 LAN 上的另一台计算机打开与 xxxx:4000 的 RDP 会话

当我使用 netstat -a 时,它显示 TCP 正在监听端口 4000,但 RDP 连接失败,并显示“计算机处于脱机错误”。当我使用 3389 执行上述确切步骤时,它起作用了,有人知道发生了什么吗?

答案1

从正常工作的注册表中导出注册表,然后导入到损坏的注册表中

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

答案2

首先,确保您输入的值是十进制格式,而不是十六进制格式。

其次,在注册表中更改 RDP 端口后,您必须重新启动远程桌面服务。

您可以通过 PowerShell 轻松更改 RDP 端口。打开 PowerShell 并运行以下命令。

$portvalue = 4000

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue 

答案3

我建议尝试使用 PowerShell(您可以将 50102 更改为所需的端口号)

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 50102

New-NetFirewallRule -DisplayName "Custom RDP Port (TCP-In)" -Direction Inbound -LocalPort 50102 -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "Custom RDP Port (UDP-In)" -Direction Inbound -LocalPort 50102 -Protocol UDP -Action Allow

这两个命令调整 Windows Defender 防火墙以允许您的新自定义 RDP 端口(不确定这些是否在 w2k8 上有效)

答案4

(Windows firewall is disabled, and I've made sure the service isn't running in services.msc)

不,

禁用 Windows 防火墙的正确方法是将其配置为在所有网络配置文件上“关闭”,但你应该绝不实际上停止并禁用Windows Firewall服务,它是 Windows 网络堆栈的一个组成部分。

不支持停止实际服务,并且可能导致任何类型的网络问题,无论您想要允许或拒绝什么流量。

另请参阅此处:我该如何支持我的建议,不要禁用 Windows 防火墙服务?

相关内容