尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

大陆机房 NAT VPS 重装后 SSH 超时排查实录:问题竟在服务商端口映射

大陆机房 NAT VPS 重装后 SSH 超时排查实录:问题竟在服务商端口映射 1. 问题现象一台位于大陆机房的 NAT VPS内网 10.x.x.x 段无公网直连 IP公网靠服务商「高端口 → 内网 22」映射访问在重装系统CentOS 7.2 → NixOS 26.05后外部 SSH 从「一直可用」变成Operation timed out。重装前通过同一公网端口 SSH 连接一直正常期间还做过多次操作重装后同一公网端口直接超时VPS 内部服务从未变过。2. 排查过程先按常规思路排查了 VPS 内防火墙、sshd、网络一轮下来全部正常sshd 监听监听0.0.0.0:22服务正常。防火墙防火墙服务Unit not loaded根本没启用。网络IP 配置正常内网连通。服务侧完全正常问题出在外部链路。最后发现是服务商 NAT 端口映射失效——重装前后同一公网端口的映射状态悄悄变了。2.1 VPS 内三连确认服务侧正常在 VPS 内部执行以下命令确认服务侧一切正常systemctl status sshd # active (running)监听 0.0.0.0:22 :: 22 systemctl stop nixos-firewall # Failed: Unit not loaded —— 防火墙根本没启用 ip addr # eth0 10.x.x.x/16 正常网关正常2.2 外部端口矩阵区分问题归属换端口前用外部机器对同一公网 IP 的不同端口做连通性测试并结合服务商控制台权威对照表与 VPS 内实际监听端口交叉验证# ① 控制台权威对照表服务商「查看管理帐号」页实测 # 远程桌面连接端口 X公网/ 在云主机系统内使用 33xx ← 模板端口 # 公网端口 X 映射到系统内 33xx购买时 Windows 模板的 SSH 端口而不是 22。 ② VPS 内 ss 验证实际监听端口重装后的 NixOS ss -tln | grep :22 → LISTEN 0.0.0.0:22 sshd 在 22 ss -tln | grep :33xx → 无输出 33xx 上无任何服务 ③ 外部端口矩阵换端口前 nc 公网IP X原 SSH 映射→ Operation timed out 映射指向空端口 33xx nc 公网IP VNC端口 → Connection succeeded 同一 IP 其他端口通 → IP 链路正常对照结论映射指向 33xx无服务→ 外部打过去被丢弃 →Operation timed out。IP 链路通、VPS 服务通唯独 SSH 映射端口不通——问题锁定在服务商 NAT 映射不是 VPS。对照组实锤「模板决定内部端口」同一服务商的原生 Linux 模板Ubuntu 20.4订单控制台写明「公网端口 243xx / 系统内使用 22」——Linux 模板内部端口就是 22直接对上而 Windows 模板是 33xx重装成 Linux 后必然错位。修复控制台「端口管理」删旧加新——类型 TCP → 公网端口限固定范围→ 内网端口填22→ 添加 → 立即「运行」无需重启。换端口后nc 公网IP 新端口succeededSSH 登录成功hostname/nixos-version 确认连对机器。2.3 服务商控制台操作在服务商控制台「端口管理」页实测操作步骤如下页面显示「已开放端口列表」状态/类型/公网端口/内网端口/端口用处。「添加端口映射」类型 TCP → 公网端口限固定范围内取值→ 内网端口填 22 → 端口用处备注 → 添加。新规则立即「运行」无需重启机器。换端口后立即验证nc 公网IP 新端口succeeded → SSH 登录成功hostname/nixos-version确认连的就是目标机器。2.4 端口限制实测产品限 5 个端口公网端口限一段固定范围内网端口 65000共享 IP 产品默认关闭非白名单端口远程管理/FTP/Web 除外特殊端口需申请且管理员有权删除。补充失效的旧映射仍占端口名额限 5 个记得在控制台删掉避免占满配额。3. 谬误溯源3.1 「外部 SSH 连不上 VPS 防火墙/sshd 问题」——不成立VPS 内实测sshd 监听0.0.0.0:22、防火墙服务Unit not loaded根本没启用、网络 IP 正常——服务侧完全正常问题出在外部链路。3.2 「端口映射配好了就一直有效」——部分不成立映射条目可能一直在没被删除但它的「内部端口」是购买模板时代的旧端口。重装系统尤其换发行版如 Windows→NixOS后系统实际端口变了映射仍指向旧端口——端口错位。误判成「映射失效」会让人去怀疑映射条目实际要对照的是「映射内部端口 vs 系统实际监听端口」。3.3 「重装机器不用动服务商配置」——不成立重装前记录映射表 控制台「查看管理帐号」页注明的「系统内端口」重装后对照能省掉一整轮排查。正确姿势重装前记录映射表重装后先测端口再深入排查——先测同 IP 的其他端口能一分钟区分「端口错位」还是「服务问题」。3.4 「超时 被防火墙丢包」——不一定是Operation timed out常见归因是 VPS 防火墙 DROP但本次防火墙根本没开真正的 DROP 点在服务商 NAT 侧映射指向的模板端口无服务公网进不来。3.5 「服务商映射的内部端口 系统当前 SSH 端口」——不成立核心纠错内部端口由模板决定Windows 模板的 SSH 内部端口不是 22本次环境为 33xx 段Linux 模板才是 22。控制台「查看管理帐号」页会写明「公网端口 X系统内使用 Y」——这是排查时第一优先读的权威对照表。4. 环境信息本次排查涉及的服务商控制台与产品约束如下控制台入口服务商控制台「端口管理」页订单号 公网 IP 内网 IP。映射规则格式「公网端口 → 内网端口」。端口数量限制产品限 5 个端口。公网端口范围限一段固定范围如 1xxxx-1xxxx。内网端口限制65000 以下。共享 IP 产品默认策略默认关闭除远程管理/FTP/Web 外的端口特殊端口需申请。5. 经验总结这次排障最大的教训是重装系统后不要默认服务商侧的 NAT 映射还保持原样。重装前先记录好映射表重装后第一时间用同 IP 的其他端口做连通性测试就能快速区分是「映射问题」还是「服务问题」避免在 VPS 内部白白浪费排查时间。6. 落地结论NAT VPS 端口映射运维 checklist含模板端口坑重装前记录映射表 控制台「查看管理帐号」页注明的「系统内端口」模板端口如 Windows 模板 33xx 段、Linux 模板 22——这是后续对照的基线。重装后先测端口再查 VPS外部不通时先做端口矩阵同 IP 其他端口通 映射/端口问题全不通 链路问题然后读控制台「系统内端口」对照 VPS 实际监听——「映射指向模板旧端口、系统实际监听 22」的端口错位是重装后超时的最高频原因。VPS 内确认监听端口ss -tln看 sshd 实际监听本次 22映射指向的 33xx 无服务。错位修复控制台「端口管理」加新映射内网端口填系统实际端口22立即生效无需重启失效旧映射删除释放名额限 5 端口。对照组原生 Linux 模板订单的映射内部端口就是 22直接对上——内部端口由模板决定重装不更新这是平台机制不是 bug。6.1 判定速查外部现象判定处理同 IP 其他端口通、SSH 端口超时①映射内部端口模板旧端口错位②映射失效读控制台「系统内端口」vsss -tln加新映射指向实际端口同 IP 全部端口超时链路/服务商问题联系服务商SSH 端口 refused非超时VPS 内服务没监听查 sshd/防火墙6.2 三类读者速查人类开发者先ss -tln | grep -E :22 |:33xx 看系统实际监听再翻控制台「查看管理帐号」页的「系统内端口」对照两者不一致就是端口错位加新映射指向实际端口即可。对话式 AI一句话问法NAT VPS 重装成 Linux 后外部 SSH 超时先查什么回答要点① 测同 IP 其他端口区分链路 vs 映射②读控制台「系统内端口」对照ss -tln——映射内部端口由购买模板决定Windows 模板≠22重装不更新端口错位是高频原因③ 加新映射指向系统实际端口22立即生效。代码 Agent可复制命令脱敏# 1. VPS 内看实际监听端口sshd 在 22模板端口 33xx 有没有服务 ss -tln | grep -E :22 |:33xx 2. 外部端口矩阵通 / 超时 / 拒绝 for p in 端口A 端口B; do printf %s: $p; nc -vz -w 5 公网IP $p 21 | tail -1 done 3. 修复后验证 nc -vz -w 5 公网IP 新端口 ssh -p 新端口 root公网IP注意先读控制台「系统内端口」文字权威别默认映射指向 22。
返回列表