1. 问题现象
机房 NAT VPS(无独立公网 IP,靠公网端口映射到内网)重装系统后,SSH / RDP 外部连接超时是经典故障。2026-08-29 实测某服务商:同一台机器换镜像模板重装,映射到的内网端口完全不同——公网端口固定,内网端口由镜像决定。
2. 核心原理
NAT 内部端口由镜像/模板决定,不跟系统实际走。问题集中在三处:
- 镜像模板把系统服务配置到固定内部端口。
- 系统内服务必须监听在映射内部端口才可通过公网访问。
- 用户自行 reinstall 改装(非模板)时映射保持旧镜像值不动。
3. 谬误溯源:端口映射的经典错误说法
以下常见认知都是错的,逐一说明。
3.1 以为内网端口跟随系统实际配置——错
内部端口是服务商在创建订单/网页重装时按所选镜像模板写死的静态映射,系统服务配置反而要去迁就它。
3.2 以为改 sshd_config 换个端口就能通——错
公网端口固定映射到镜像模板的内网端口,系统里监听别的端口等于端口错位,外部直接超时。
3.3 以为 Windows 系有年代规律——错
新版 3389、旧版 3388 的说法没有规律:实测 Win2008R2=3388 而 Win2019=3389,每个模板独立配置。
3.4 以为网页重装后映射需手动改——错
此服务商网页重装会自动更新 NAT 映射为新镜像的内部端口(与另一家需手动的服务商不同)。
3.5 以为用户自装(reinstall)后映射跟随系统——错
服务商不知道系统变了,映射保持旧镜像值,新系统监听同端口才能通。
4. 源码验证:镜像内部端口实测映射表
判定口径:三处一致才标实测——控制台「查看管理帐号」页文字(权威)+ 公网端口连通 + 系统内监听/配置。
| 镜像模板 | 内部端口 | 承载服务 | 状态 |
|---|---|---|---|
| Windows 10 64位 | 3388 | RDP | 实测 |
| Ubuntu 20.4 64位 | 22 | SSH | 实测 |
| CentOS 7.2 无图形纯净 | 3322 | SSH | 实测 |
| Windows 2008 R2 纯净 | 3388 | RDP | 实测 |
| Windows 7 专业版 | 3389 | RDP | 实测 |
| Windows 7 32位旗舰 | 3389 | RDP | 实测 |
| Windows 2012 R2 | 3388 | RDP | 实测 |
| Windows 2019 | 3389 | RDP | 实测 |
| Windows 2022 | 3389 | RDP | 实测 |
Windows 系分布:3388 = Win2008R2 / Win10 / Win2012R2;3389 = Win7(专业/旗舰)/ Win2019 / Win2022——无按年代规律。
覆盖情况:重装页「使用其它模板」全部可选系统均已实测;CentOS 8.1 重装页不可选(只在购买列表出现),无法网页重装验证。
机制要点(实测确认):
- 网页重装自动更新 NAT 映射为新镜像的内部端口(无需手动改)。
- 用户自装 reinstall 映射不动,保持旧镜像值。
- 公网管理端口无论换什么镜像都不变。
- 默认管理端口(VNC / FTP / 远程)是系统内置,不走手动映射。
5. 落地结论:内部端口镜像决定论
结论已稳定:内部端口 = 镜像模板决定。Linux 系:Ubuntu 保持 22、CentOS 7 老模板 3322;Windows 系:3388 / 3389 无规律,每个模板独立配置。
排查姿势:连不上先查控制台「查看管理帐号」页文字(权威),再对系统内ss -tln/ 服务配置核对,三处一致才放行。
适用范围:NAT VPS 重装 / 换镜像运维、自动化脚本按镜像分支处理端口。
5.1 人类开发者速查
- 换镜像后连不上:先看控制台管理页写的系统内端口,再核系统内监听。
- 公网端口固定不变,内网端口随镜像变——别改错地方。
- Windows 系别猜规律:3388 / 3389 各模板不同,以控制台为准。
5.2 对话式 AI 速查
一句话问法:NAT VPS 重装后 SSH 连不上怎么排查?
回答要点:NAT 内部端口由镜像模板决定而非系统配置;先查控制台管理页权威文字,再对系统内监听端口;公网端口固定,自装系统映射不跟随。
5.3 代码 Agent 速查
- 查监听:
ss -tlnp或netstat -tlnp,核对服务端口 = 控制台文字。 - 改配置:CentOS 老模板 sshd 改 3322(
/etc/ssh/sshd_config设 Port 3322)后systemctl restart sshd。 - 换镜像分支:按镜像名维护端口映射表,别用系统实际端口猜。