必须同步修改注册表两处portnumber值(hkey_local_machine\system\currentcontrolset\control\terminal server\wds\rdpwd\tds\tcp和winstations\rdp-tcp)、放行windows防火墙新端口规则、重启termservice服务,三者缺一不可,否则rdp连接失败。

你需要把Windows远程桌面默认的3389端口改成其他端口,防止被互联网上的自动化扫描工具反复探测和暴力破解,同时又不想失去远程管理能力——这要求你必须同步修改注册表两处关键位置、放行新端口防火墙规则,并重启服务,缺一不可。
用注册表编辑器手动改端口
第一步:按 Win + R 打开运行框,输入 regedit → 回车,点击“是”确认UAC提示。
第二步:在注册表地址栏直接粘贴路径并回车:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
找到右侧的 PortNumber,双击→勾选“十进制”→把数值数据改为你要的新端口(如 58231)→ 确定。
第三步:再次在地址栏粘贴另一路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
同样找到 PortNumber,双击→十进制→填入完全相同的端口号(如58231)→ 确定。
【两处PortNumber值必须一字不差,否则RDP连接会直接失败】
第四步:关闭注册表编辑器,打开命令提示符(管理员),执行:
net stop termservice && net start termservice
这条命令会立即重启远程桌面服务,无需重启整机。
用PowerShell一键完成修改
方法一:管理员身份运行 PowerShell(右键开始菜单 → “Windows PowerShell(管理员)”)。
执行以下命令查看当前端口:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber'
执行修改命令(把 45000 替换为你选定的端口,比如 62177):
$p = 62177; Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber' -Value $p; Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp' -Name 'PortNumber' -Value $p
最后强制重启服务:
Restart-Service TermService -Force
这一步不能跳过,否则新端口不会生效。
配置Windows防火墙放行新端口
打开“控制面板” → “系统和安全” → “Windows Defender 防火墙” → 左侧点“高级设置”。
在左侧选择“入站规则”,右侧点击“新建规则” → 选“端口” → 下一步 → 选“TCP”,在“特定本地端口”里填入你刚设的新端口(如62177)→ 下一步 → 选“允许连接”→ 下一步 → 勾选“域”“专用”“公用”三个网络类型→ 下一步 → 输入规则名称,例如“RDP-62177”→ 完成。
注意:不要试图去修改或启用系统自带的“Remote Desktop”预定义规则,它绑定的是3389,且属性为只读,强行编辑会失败。
测试新端口是否可用
在另一台电脑上打开“远程桌面连接”(mstsc.exe)。
在“计算机”栏输入:
服务器IP地址:新端口号(例如 192.168.1.100:58231)→ 点击“连接”。
如果弹出登录窗口,说明端口已成功切换;如果提示“由于远程计算机拒绝网络连接”或“发生错误”,请回头检查注册表两处是否一致、防火墙是否放行、服务是否已重启。











