Posted in

阿里云修改远程桌面端口

在使用阿里云部署 Windows 实例时,大多数人都习惯于直接通过远程桌面连接。但你是否知道,那个熟悉的 TCP 3389 端口特征,正赤裸裸地暴露在公网之下,给无数居心叵测的攻击者提供了可乘之机。面对阿里云不提供免费端口映射的现状,很多新手往往望而却步。其实,安全防护并不复杂。这篇文章将为你揭示一种极简的方法,让你既能保留远程桌面的便捷性,又能轻松修改访问端口,彻底告别端口暴露的风险。

方法一 直接修改 Windows 远程桌面(但我不建议)

Windows 远程桌面端口是可以配置的,但是我不建议这么做。
首先,要配置注册表,这样对不熟悉的人有一定的操作风险;
其次,这种方法不便于移植,如果重新配置必须要重新操作一次;
第三,操作过程中远程桌面会断开,如果您正在使用远程桌面操作会比较尴尬,操作失败再重新登录比较麻烦。
如果要使用这个方法,请继续往下看,如果使用我建议的方法,可以跳到“方法二”。

以下提供一个把远程桌面默认端口与 3389 改成 3390 的方法

第一步:改注册表

Win + R 打开运行,输入 regedit,导航到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

找到 PortNumber,双击修改:

  • 选 十进制
  • 填入新端口,比如 3390(建议选 1024–65535 之间,避开常用端口)

第二步:防火墙放行新端口

打开 PowerShell(管理员),运行:

New-NetFirewallRule -DisplayName "RDP 新端口" -Direction Inbound -Protocol TCP -LocalPort 3390 -Action Allow

第一步:把 3390 换成你实际选的端口。

第三步:重启远程桌面服务

PowerShell(管理员)中运行:

Restart-Service TermService -Force

或者重启电脑也行。

第四步:阿里云安全组放行

登录阿里云控制台 → ECS 实例 → 安全组 → 添加入方向规则:

协议端口范围授权对象
TCP3390你准入的 IP /32
(推荐限制来源,如果不限制填 0.0.0.0/0)

第五步:连接测试

mstsc 连接时加上端口号:

服务器IP:3390

⚠️ 注意事项

  1. 别急着关当前远程会话——先开一个新连接测试新端口能通,确认没问题再断开旧的,否则可能把自己锁在外面;
  2. 旧端口可以保留也可以关——确认新端口可用后,可以把 3389 的防火墙规则删掉:powershell# 查找 3389 的防火墙规则 Get-NetFirewallRule -DisplayName "*3389*" | Format-Table DisplayName, Enabled
  3. 阿里云安全组也要同步改——如果安全组没放行新端口,从外部连不上。

方法二 同时支持两个远程桌面端口,通过阿里云安全组关闭 3389 端口

问:Windows 远程桌面支持同时打开两个 TCP 监听端口吗?
答:Windows 远程桌面的监听端口由注册表 PortNumber 控制,它是单个值,不能同时填两个端口,但有变通方案

第一步:用 netsh 端口转发

把 RDP 改到新端口(比如 3390),然后用 Windows 自带的 netsh portproxy 把 3389 也转发过去:

# RDP 已改为监听 3390
# 把 3389 的流量转发到 3390
netsh interface portproxy add v4tov4 listenport=3389 connectport=3390 connectaddress=127.0.0.1

# 查看转发规则
netsh interface portproxy show all

# 防火墙两个端口都放行
New-NetFirewallRule -DisplayName "RDP 3389" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
New-NetFirewallRule -DisplayName "RDP 3390" -Direction Inbound -Protocol TCP -LocalPort 3390 -Action Allow

测试 3389 和 3390 都能连上远程桌面

在不需要时,删除转发规则,例如删除 3390 端口。

netsh interface portproxy delete v4tov4 listenport=3390

第四步:阿里云安全组放行

登录阿里云控制台 → ECS 实例 → 安全组 → 添加入方向规则:

协议端口范围授权对象
TCP3390你准入的 IP /32
(推荐限制来源,如果不限制填 0.0.0.0/0)

同时禁用 3389 端口

第五步:连接测试

mstsc 连接时加上端口号:

服务器IP:3390

⚠️ 注意

  • netsh portproxy 重启后依然生效(写在系统配置里),但如果你重置网络栈(netsh int ip reset)会被清掉;
  • 如果目的是兼容旧客户端(有些同事习惯连 3389),这个方案够用;如果目的是安全,建议只保留新端口,关掉 3389。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注