开始输入,可搜索发票、服务、域名、工单,以及 更多...
Windows 远程桌面默认使用 3389 端口,这个端口长期被扫描器和暴力破解工具盯着。修改远程桌面端口是降低被扫描、减少登录失败日志最简单的方法之一。本文介绍如何在 Windows Server 2016 / 2019 / 2022 上通过注册表 PortNumber 或 PowerShell 修改远程桌面端口,正确放行 Windows 防火墙,并重启远程桌面服务使其生效。
建议选择 10000–65535 之间、未被其他程序占用的端口,例如 33890 或 52025。先在服务器上确认该端口未被占用:
netstat -ano | findstr :33890
没有任何输出即表示端口空闲。请避开 80、443、1433、3306 等常用服务端口,也不要使用 1024 以下的端口。本文以下示例均以 33890 为例,请替换为你自己的端口号。
以管理员身份打开 PowerShell,为新端口添加 TCP 与 UDP 入站规则(远程桌面会同时使用 UDP 加速传输):
New-NetFirewallRule -DisplayName "RDP-TCP-33890" -Direction Inbound -Protocol TCP -LocalPort 33890 -Action Allow
New-NetFirewallRule -DisplayName "RDP-UDP-33890" -Direction Inbound -Protocol UDP -LocalPort 33890 -Action Allow
如果服务器上还有第三方安全软件或你在网络层设置了访问控制,也需要同步放行新端口。
远程桌面端口保存在注册表 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 下的 PortNumber 值中。使用 PowerShell 修改:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 33890
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber
也可以使用 CMD 的 reg 命令完成同样的修改:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 33890 /f
如果更习惯图形界面,可运行 regedit 定位到上述路径,双击 PortNumber,选择“十进制”后输入新端口。
修改注册表后需要重启远程桌面服务(TermService),当前的远程连接会断开,这是正常现象:
Restart-Service TermService -Force
如果重启服务失败,可以直接重启服务器(Restart-Computer)。服务重启后,在服务器上确认新端口正在监听:
netstat -ano | findstr :33890
在本地电脑先测试新端口是否可达,然后在远程桌面客户端(mstsc)中以“IP:端口”的格式连接,例如 203.0.113.10:33890:
Test-NetConnection 203.0.113.10 -Port 33890
mstsc /v:203.0.113.10:33890
确认新端口可正常登录后,可以禁用默认的 3389 远程桌面防火墙规则,进一步减少暴露面:
Disable-NetFirewallRule -Group "@FirewallAPI.dll,-28752"
登录客户中心 → 我的产品与服务 → 选择服务器 → 管理,打开 VNC 控制台,检查防火墙规则是否存在、PortNumber 是否为预期值,或将 PortNumber 改回 3389 后重启 TermService。如找不到控制台,可提交工单。
不需要。但如果你使用了远程桌面网关、堡垒机或保存了连接配置文件(.rdp),请同步更新其中的端口号。
可以,注册表路径和命令在 Windows 10/11 专业版上同样适用。
如仍无法解决,请提交工单联系 IMIDC 7×24 技术支持,告知服务器 IP 与修改后的端口,我们会协助排查。