Windows远程桌面默认端口3389暴露外网有风险,需用PowerShell修改:先查当前端口,再改注册表PortNumber值,接着用New-NetFirewallRule放行TCP/UDP新端口,最后Restart-Service TermService生效。Windows 远程桌面默认使用 3389 端口,直接暴露在外网存在安全风险。用 PowerShell 修改端口既高效又可靠,整个过程只需几分钟,关键是要一次性改对注册表、放行防火墙、重启服务三个环节。
查看当前远程桌面端口
先确认当前值,避免误操作:
- 以管理员身份打开 PowerShell
- 运行命令:Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber'
- 输出中 PortNumber 后面的数字就是当前端口(如 3389)
修改注册表中的端口号
这一步直接写入新端口,不重启不会生效:
- 执行命令(把 15678 换成你选定的端口,建议选 10000–65535 之间的未占用端口):
$newPort = 15678
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber' -Value $newPort - 可再运行一次查看命令,验证是否已更新
配置 Windows 防火墙放行新端口
改完端口但没开防火墙,远程连接照样失败:
- 添加 TCP 入站规则:
New-NetFirewallRule -DisplayName 'RDP-TCP-15678' -Direction Inbound -Protocol TCP -LocalPort 15678 -Action Allow -Profile Any - 如果启用了 UDP 优化(较新系统),也加一条 UDP 规则:
New-NetFirewallRule -DisplayName 'RDP-UDP-15678' -Direction Inbound -Protocol UDP -LocalPort 15678 -Action Allow -Profile Any - 注意:Profile Any 表示同时对“域”“专用”“公用”网络生效,比只写 Public 更稳妥
重启远程桌面服务使设置生效
注册表和防火墙都配好后,必须重启服务才能监听新端口:
- 运行命令:Restart-Service TermService -Force
- 无需重启整机,TermService 重启后立即生效
- 连接时在远程桌面客户端地址后加冒号和端口,例如:192.168.1.100:15678











