遇到跨境主机无法互通时,建议按网络分层法(链路、路由、传输、应用、安全)逐步检查:先用 ping/traceroute 确认路径,再看云端路由与 NAT,检查安全组与主机防火墙规则,必要时抓包和联系运营商或云厂商,做到从哪个环节、哪个设备、哪个方向排查并记录每一步。
造成互联失败常见原因包括骨干路由或 BGP 收敛问题、两端公网/弹性 IP 配置错误、云端 VPC 路由表或网关(例如 IGW/NAT)缺失、防火墙或安全组阻断、主机本地 iptables/ufw 错误、ISP 侧封锁或丢包、以及 MTU/分片导致的应用层超时。针对不同环节采取对应测试可快速缩小范围。
首先在双方主机运行 traceroute(Linux: traceroute 或 mtr,Windows: tracert)确认跳点与丢包点;在云端控制台查看 VPC 路由表、子网路由和 NAT 网关、弹性 IP 绑定是否正确;在本地查看路由表:Linux 用 ip route show,Windows 用 route print。若怀疑 BGP/互联网骨干问题,可利用 RIPE/HE BGP 查看或第三方 Looking Glass 验证。
在阿里云控制台确认安全组和网络 ACL 是否允许目标端口与源地址,注意安全组是有方向性的(入站/出站)。在主机上检查本地 防火墙:Linux 常用 sudo iptables -L -n、sudo nft list ruleset、sudo ufw status 或 firewall-cmd --list-all,Windows 检查高级防火墙规则。测试方法:用 nc/telnet 或 curl 直接从源端口连目标端口以验证 TCP 通路。
若 traceroute 在互联网中段出现丢包或黑洞,使用第三方节点(例如全球 VPS、在线 ping/traceroute 服务)从不同位置发起测试,比较路径差异;查询 BGP 路由公告(bgp.he.net、RIPE RIS)看是否存在拒绝或回路;对 MTU 问题用 ping -M do -s 测试分片;必要时联系两端 ISP 提供路由/链路告警与抓包支持。
优先确认业务所需端口(例如 SSH 22、HTTP 80、HTTPS 443、数据库端口或自定义端口)并确保安全组与主机防火墙一致允许。注意 ICMP 被屏蔽会影响 ping/traceroute 的判断但不代表 TCP 被阻断;UDP 与 GRE/IPSec 等隧道协议更易被中间网络过滤,跨国 VPN/专线需确保相应协议与端口已放行。
在可疑主机上用 tcpdump/tshark 抓取交互流量(如 sudo tcpdump -i eth0 host A.B.C.D and port 443),观察 SYN/ACK 是否往返;检查系统日志(/var/log/messages、secure、firewalld 日志)和云端审计日志,记录每次测试时间与命令输出以便比对。若抓包显示请求到达但无响应,多为主机应用或本地防火墙问题;若未到达,则为路由/中间链路问题。
排错时按影响面最小的方式测试:先在不修改生产规则下做检测(远程抓包、只读查看路由/安全组),临时开启必要端口做短期验证,再逐步回退或固化变更;若为跨云访问频繁遇阻,考虑建立专线/VPN 或使用云厂商互联服务以规避公网不稳定性,并在变更前做好回滚与监控方案。