3389 端口:如何修改 RDP 端口并加固远程桌面
发布于 29 Oct 2026
RDP 端口是 TCP 和 UDP 3389。如何在 Windows 上修改 3389 端口,为什么这只能减少机器人扫描的噪音,以及真正能保护租用 RDP 的几项设置。

默认的 RDP 端口是 3389,TCP 和 UDP 都是。RD 网关(RD Gateway)会把对外的一端换到 TCP 443 和 UDP 3391,但从主机商那里租来的 Windows RDP 很少配有网关:你是直接连到它公网 IP 的 3389 端口。下文讲如何修改 RDP 端口,为什么这只能让扫描机器人安静一点,以及只需十分钟、真正能保护服务器的几项设置。
核对于 2026 年 10 月 1 日。
RDP 端口是多少:TCP 和 UDP 3389 端口,RD 网关用 443
微软的远程桌面服务端口列表:
| 端口 | 协议 | 用途 |
|---|---|---|
| 3389 | TCP | 远程桌面连接(默认) |
| 3389 | UDP | 同一连接的 UDP 传输 |
| 443 | TCP | RD 网关(封装在 HTTPS 里的 RDP)和 RD Web 访问 |
| 3391 | UDP | RD 网关的 UDP 传输 |
IANA 把 3389 端口登记为 ms-wbt-server,TCP 和 UDP 都包括在内。想查看服务器实际监听的 RDP 端口号,在以管理员身份运行的 PowerShell 中执行:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
修改 RDP 端口减少的是噪音,不是风险
改端口没什么问题,但它不是安全措施。自动化的密码猜测程序盯着 3389,因为它是默认端口,所以开在这个端口上的服务器会不断记录登录失败。换个端口,大部分噪音就没了,真正的攻击尝试反而更显眼。
它藏不住服务器:把全部 65535 个端口扫一遍,很快就能找到新端口。改端口是为了让日志清静些,下面的加固照样要做。
如何在 Windows 上修改 RDP 端口
微软给出的操作步骤就是改一个注册表值,再加一条防火墙规则。先放行防火墙,否则重启之后你就被锁在外面了。选一个低于 49152 的未用端口:Windows 把 49152 到 65535 留给自己的出站连接。
$port = 47213
# 1. Open the new port first, TCP and UDP
New-NetFirewallRule -DisplayName "RDP custom TCP" -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow
New-NetFirewallRule -DisplayName "RDP custom UDP" -Direction Inbound -Protocol UDP -LocalPort $port -Action Allow
# 2. Point Remote Desktop at it
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value $port
# 3. Restart to apply
Restart-Computer
如果主机商在控制面板里也提供防火墙,那里同样要放行这个端口。连接时在地址后面加上端口,例如 203.0.113.10:47213;确认能连上之后,用 Disable-NetFirewallRule -DisplayGroup "Remote Desktop" 关闭旧规则。更习惯用注册表编辑器?在同一个 RDP-Tcp 项下以「十进制」修改 PortNumber,然后重启。
把 RDP 暴露在公网上的风险
暴露在公网上的 RDP 是一条被反复利用的入侵路径。CISA 的 #StopRansomware 指南指出,攻击者经常通过暴露在外、防护薄弱的远程服务进入网络,并建议干脆不要把 RDP 暴露到互联网上。确实需要 RDP 的地方,指南要求关闭未使用的 RDP 端口,启用账户锁定和多因素身份验证,并记录登录尝试。微软在 KB5020282(2022 年)中把暴力破解列为 Windows 计算机遭受攻击的三大途径之一,并指出在 2022 年 10 月的更新之前,内置的 Administrator 账户无法被锁定,因此可以通过 RDP 无限次地猜密码。
远程桌面服务自身的漏洞更是雪上加霜。2019 年 5 月修补的 BlueKeep(CVE-2019-0708)让攻击者在 Windows XP、7 以及 Server 2003 至 2008 R2 上无需登录就能执行代码。微软指出,网络级别身份验证(NLA)只能部分缓解这个漏洞:它挡得住蠕虫,挡不住手握有效凭据的攻击者。
开启 NLA、设置账户锁定、使用长密码短语并及时打补丁的公网 RDP,是守得住的。只对你一个人开放的 RDP 更好。
十分钟加固一台租来的 RDP
保持网络级别身份验证开启
启用 RDP 网络级别身份验证后,客户端必须先通过身份验证,Windows 才会创建会话,这样没有密码的人就碰不到 BlueKeep 这类登录前漏洞。检查一下,必要时把它打开:
$ts = Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-Tcp'"
$ts.UserAuthenticationRequired # 1 means NLA is on
Invoke-CimMethod -InputObject $ts -MethodName SetUserAuthenticationRequired -Arguments @{UserAuthenticationRequired = 1}
检查账户锁定策略(它可能是关闭的)
根据微软的策略参考文档,独立服务器(未加入域的服务器)的默认值是 0,即永不锁定,而且内置的 Administrator 账户不在锁定范围内。KB5020282 只对 Windows 11 22H2,以及首次设置之前就已包含 2022 年 10 月更新的新机器改变了这一点:10 分钟内失败 10 次,账户锁定 10 分钟,Administrator 也包括在内。首次设置之后才更新的机器仍沿用旧的默认值。用 net accounts 检查主机商提供的镜像。如果「Lockout threshold」(锁定阈值)显示 Never(从不):
net accounts /lockoutthreshold:10 /lockoutduration:10 /lockoutwindow:10
然后在 secpol.msc 的 Account Policies > Account Lockout Policy(账户策略 > 账户锁定策略)下启用 Allow Administrator account lockout(允许管理员账户锁定)。锁定只拦截 RDP 这类网络登录,控制台照样能用。
重命名管理员账户,使用长密码短语
密码猜测程序首先尝试的就是 Administrator;改了名的账户还能防止陌生人用你自己的用户名把你锁在外面:
Rename-LocalUser -Name "Administrator" -NewName "pick-something-unguessable"
如果主机商的面板可以重置密码,确认它仍然能找到改名后的账户。初始密码是主机商生成的,很可能还用邮件发给了你,所以第一次登录就把它换掉(在会话中按 Ctrl+Alt+End,再选「更改密码」)。CISA 的指南要求修改默认的管理员用户名和密码,并使用至少 15 个字符的唯一密码;这里至少要达到这个标准。
只放行你的 IP,或者通过 WireGuard 或 SSH 隧道连接
最好的 RDP 安全措施,是让端口只对你开放。如果你有固定地址,就限制内置规则;如果改过端口,就限制你自建的规则:
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -RemoteAddress 198.51.100.7
# after a port change:
Set-NetFirewallRule -DisplayName "RDP custom TCP","RDP custom UDP" -RemoteAddress 198.51.100.7
家庭宽带的地址会变,VPN 也解决不了这个问题。Mullvad 和 IVPN 都接受 Monero 付款,能让你的家庭 IP 不出现在主机商的日志里,但同一台 VPN 服务器上的所有人共用一个出口地址,拿来做白名单并不合适。想要一个只属于你的地址,有两种办法:
- 在一台小型 Linux VPS 上跑 WireGuard。 自建一台 WireGuard 服务器,用 VPS 机位里一台便宜的机器就够了,然后只允许来自它 IP 的 RDP 连接。
- SSH 隧道。 从 Windows Server 2019 起,OpenSSH Server 是一项可选功能,Windows Server 2025 则已预装;启动
sshd服务,并把启动类型设为「自动」。把你的公钥放进C:\ProgramData\ssh\administrators_authorized_keys,并按微软密钥管理指南的做法,只让 Administrators 和 SYSTEM 可以读取;在C:\ProgramData\ssh\sshd_config中设置PasswordAuthentication no,然后重启sshd。打开隧道(如果改过端口,把 3389 换成你的自定义端口):
ssh -N -L 13389:127.0.0.1:3389 [email protected]
让远程桌面连接 127.0.0.1:13389,确认可用后,禁用远程桌面的防火墙规则。这样 RDP 就从公网上消失了;留在公网上的是 22 端口,而它只接受密钥登录。
关闭用不到的剪贴板和驱动器重定向
服务器一旦被攻破,你重定向给它的剪贴板和磁盘它都能碰到。在「远程桌面连接」中打开「显示选项 > 本地资源」,取消勾选「剪贴板」,再点「详细信息」,取消勾选「驱动器」。要在服务器端强制执行,在 gpedit.msc 的 Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Device and Resource Redirection(管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 设备和资源重定向)下,启用 Do not allow Clipboard redirection(不允许剪贴板重定向)和 Do not allow drive redirection(不允许驱动器重定向)。
打补丁,然后查看登录失败事件
运行 Windows Update,并保持自动更新开启。检查一下系统版本:Windows Server 2012 和 2012 R2 的付费扩展安全更新已于 2026 年 10 月结束(微软产品生命周期),Windows 10 也已于 2025 年 10 月 14 日终止支持。向主机商要 Server 2022 或 2025,或者 Windows 11。
登录失败对应事件 4625;远程桌面登录成功则是 4624,登录类型为 10(RemoteInteractive)。下面的命令列出失败次数最多的十个地址:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 2000 |
ForEach-Object { (([xml]$_.ToXml()).Event.EventData.Data | Where-Object Name -eq 'IpAddress').'#text' } |
Group-Object | Sort-Object Count -Descending | Select-Object -First 10 Count, Name
结果为空?用 auditpol /set /subcategory:"Logon" /failure:enable 打开失败审核。来自陌生人的失败登录只是开放端口的背景噪音;来自陌生地址的 4624 类型 10 登录,才是安全事件。
主机商能看到什么,看不到什么
主机商掌控着你服务器底下的虚拟化管理程序(hypervisor):
- 它能打开控制台、重置密码、给磁盘做快照,读取你没有加密的任何东西。
- 它看得到你从哪个地址连接(如果用了 VPN,就是 VPN 的地址)、什么时候连接,以及传输了多少数据。
- 它读不到网络上传输的 RDP 会话,因为会话是加密的。不过手握虚拟化管理程序,它也很少需要去读。
- 它知道订购表单和付款透露出的信息。用 Monero 付款、免 KYC 注册的话,那就只是一个邮箱或一个用户名。
凡是你不愿交给运营它的公司的东西,都别放在租来的 Windows 机器上。
挑选 RDP 主机商要看什么
- 控制面板里有控制台,以备哪天防火墙规则或账户锁定出了岔子。下单前先问清楚。
- 较新的 Windows 镜像:Server 2022 或 2025,或者 Windows 11。即使也提供旧版本,结账时也要选新的。
- DDoS 防护和完整的管理员权限,两者都包含在内。
- 结账时可以用 Monero 付款,注册只要邮箱或用户名,绝不要证件。
我们的 RDP 与 Windows 机位中有两个单元出售可用 Monero 购买的 Windows RDP,按字母顺序排列:
| MurmurHost | rdp.monster | |
|---|---|---|
| 最便宜的 RDP | 按月付 $44,或按年付 $224.40 | 每月 $8.99 |
| Windows | Server 2019 和 2022,Windows 10 和 11 | Server 2012 和 2022 |
| Monero | 付到它自己的钱包,经 10 个确认后入账 | 列在其付款方式中 |
| 注册 | 不要姓名、手机号或证件 | 只要邮箱,免 KYC |
| 包含 | 完整管理员权限,10 Gbps DDoS 防护 | 完整管理员权限,抗 DDoS,除 25 端口外全部开放(25 端口为每月 $5 的附加选项) |
如果还需要 VPS、域名和邮箱,请看接受 Monero 的主机商。
常见问题
3389 是 RDP 端口吗?
是的。远程桌面默认监听 3389 端口,该端口在 IANA 登记了 TCP 和 UDP。管理员改一个注册表值就能换掉它。
远程桌面 3389 端口是 TCP 还是 UDP?
两者都是。TCP 承载连接,必须开放;同一端口上的 UDP 是额外的传输通道,客户端条件允许时就会使用。改端口时,两个都要放行。
RDP 会用 443 端口吗?
通过 RD 网关时会:它把 RDP 封装在 TCP 443 上的 HTTPS 里,另加 UDP 3391。普通租用的 RDP 没有网关,用的是 3389。
RDP 是 22 端口吗?
不是,22 端口是 SSH。你可以通过 22 端口上的 SSH 隧道传输 RDP,但 RDP 本身仍然监听 3389。
RDP 3389 端口安全吗?
端口号本身改变不了什么。RDP 会加密会话;安全来自 NLA、补丁、账户锁定、强密码,以及能连到它的地址有多少:越少越好。
把 RDP 暴露在互联网上安全吗?
这是风险最高的配置:任何人都能来试密码,任何未修补的漏洞都能被利用。如果非这样不可,就开启 NLA、设置账户锁定、使用长密码短语并打好补丁;更好的做法是只放行你自己的地址或走隧道。
简短总结
3389 端口,TCP 和 UDP。改端口是为了日志清静,不是为了安全。然后:开启 NLA,设置覆盖 Administrator 的账户锁定,重命名账户并配上长密码短语,端口只对你开放,关掉重定向,持续打补丁,每周看一眼事件 4625。每台服务器十分钟。