远程桌面改端口(含防火墙)
场景
3389 被扫得太厉害,安全日志里全是爆破;或者公司规范要求非标端口。
前置条件
- 有控制台或 IPMI 兜底,改完连不上还能救回来
- 云主机记得同步改安全组
- 新端口没被占用:
netstat -ano | findstr :13389
配置
# 1. 改端口(十进制)
$key = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
Set-ItemProperty -Path $key -Name PortNumber -Value 13389
# 2. 防火墙放行
New-NetFirewallRule -DisplayName "RDP-13389" -Direction Inbound `
-Protocol TCP -LocalPort 13389 -Action Allow -Profile Domain,Private,Public
# 3. 可选:禁用原来的 3389 规则
# 中文系统叫「远程桌面 - 用户模式(TCP-In)」,英文叫「Remote Desktop - User Mode (TCP-In)」
Disable-NetFirewallRule -DisplayName "远程桌面 - 用户模式(TCP-In)"
# 4. 重启服务(会断开当前会话,能重启机器就重启)
Restart-Service TermService -Force
验证
netstat -ano | findstr :13389
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" PortNumber
客户端连接:mstsc /v:10.0.0.5:13389。
回滚
Set-ItemProperty -Path $key -Name PortNumber -Value 3389
Enable-NetFirewallRule -DisplayName "远程桌面 - 用户模式(TCP-In)"
Restart-Service TermService -Force
坑
- 改完
TermService会断开所有在线会话,生产上先发通知。 - 端口是每台机器的,不是整个域。批量改用组策略首选项推注册表。
- 云主机:Windows 防火墙改了、安全组没改,一样连不上。
- 换端口不等于安全,扫描器照样扫全端口。真要防爆破,上 VPN / 堡垒机 / 限制源 IP。
- 多台机器用了不同端口时,文档里写清楚,不然半年后没人记得哪台是哪个。