内网两台机器互通不通
发布时间:2026-09-18 09:17       
更新时间:2026-09-18 13:39
两台内网机器互相 ping 不通,原因基本集中在三处:安全组规则没放行、两台机器不在同一私网网段、系统内部防火墙拦截。按这个顺序排查,多数情况十几分钟就能定位。
先确认两台机器在同一私网
云服务器的内网互通以私有网络(VPC)为基础,相当于在云上划出一块独立局域网。前提是两台机器在同一个 VPC 里;跨账号或跨 VPC 的机器,需要先打通对等连接或内网互联,这一步没做,后面怎么查都白费。分别登录两台机器查看内网地址:
ip addr show eth0 | grep inet
假设 A 机是 172.16.0.10,B 机是 172.16.0.25,前三段一致,属于同一子网,具备互通前提。如果 A 是 172.16.0.10、B 是 172.16.1.20,网段不同,需要先在控制台配置路由,服务器本地怎么改都没用。
还有一类情况是两台机器分属不同可用区。同一 VPC 内跨可用区的子网默认互通,但前提是路由表放行;新建子网如果关联了不同的路由表,就要检查路由条目里有没有对方网段。
安全组是最高频的原因
同一安全组内的机器默认互通,不同安全组之间则要看入方向规则。规则示例:入方向、协议 TCP、端口 3306、源地址填对端网段 172.16.0.0/16,ICMP 单独一条放行,规则改动即时生效,不用重启实例。常见误区是只放行了 ICMP,ping 通了、应用还是连不上;反过来只放行端口、ping 不通,也会被误判为故障。
系统防火墙别漏查
CentOS 用 firewall-cmd --list-all 查看放行情况,Ubuntu 用 ufw status。一个快速对比办法:把两台机器的防火墙临时关掉再 ping,能通就说明是规则问题,定位完按最小化原则恢复。临时放行测试用:
firewall-cmd --add-service=ssh
确认后加 --permanent 再执行 firewall-cmd --reload 把规则固化,避免重启后失效。
排查顺序小结
先看网段,再看安全组,最后查系统防火墙,每一步都用 ping 和 telnet 对方端口验证,比如 telnet 172.16.0.25 3306。三处都正常仍不通,把安全组截图和 ip route 输出一起提工单。另一个常见坑是机器换过内网 IP:规则按旧地址配置的,自然不通,核对控制台与系统内的地址是否一致。把每一次的检查结果按顺序记下来,哪一步开始不通一目了然,也方便回滚。