逐级 ping 定位法
终端类故障最有效的第一套动作,是沿着数据出网的顺序逐级 ping:回环地址、本机网卡地址、网关、公网 IP、域名。每通过一级,就排除掉它之前的全部环节;每失败一级,故障范围就缩小到这一级与上一级之间。五级跑完通常一分钟内就能判断问题在本机、在局域网、在出口还是在域名解析。
基本信息
| 适用场景 | 终端或服务器突然上不了网、时通时断、只有域名打不开 |
|---|---|
| 执行顺序 | 回环 → 本机地址 → 网关 → 公网 IP → 域名解析 |
| 关键分水岭 | 公网 IP 能通而域名不通,问题只在域名解析环节 |
| 记录要求 | 五级命令各自保留输出,这本身就是最简排障报告 |
典型使用场景
- 新装或迁移后的终端:确认地址、网关、域名解析三件事都对
- 用户报『上不了网』:先用五级把责任范围切到本机、内网或运营商
- 调整地址与网关后复测:逐级验证新配置是否真的生效
- 判断是否为域名解析问题:公网地址能通而域名不通,即可锁定解析环节
- 远程指导非技术同事:命令简单、结论明确,适合口述操作步骤
五级定位命令
五级定位命令
ping -c2 127.0.0.1 # 1 协议栈:不通说明本机网络栈异常
ping -c2 "$(ip -4 -br a | awk '$3~/^[0-9]/{split($3,a,"/"); print a[1]; exit}')" # 2 本机网卡地址
ping -c2 "$(ip route show default | awk '{print $3; exit}')" # 3 默认网关
ping -c2 -W2 8.8.8.8 # 4 公网 IP,绕开域名解析
ping -c2 -W2 1.1.1.1 # 4 备用公网地址,排除单点不可达
nslookup www.baidu.com 2>/dev/null || dig +short +time=2 +tries=1 www.baidu.com # 5 域名解析失败层与指向
| 失败层 | 指向的责任范围 | 下一步动作 |
|---|---|---|
| 第一级回环不通 | 本机协议栈或本机防火墙异常,极少见 | 检查本机防火墙与网络服务是否被禁用 |
| 第二级本机地址不通 | 网卡未启用、地址未生效或地址已过期 | 确认网卡状态与实际生效地址,注意续约后地址变化 |
| 第三级网关不通 | 二层链路、虚拟局域网、网关设备或本机地址解析 | 用 arping 验证二层可达,检查交换机端口与网段配置 |
| 第四级公网 IP 不通 | 出口路由、上游线路或安全策略 | 用路径工具看断在第几跳,再联系线路侧 |
| 第五级域名解析失败 | 仅是解析问题,网络本身正常 | 检查解析服务器配置与解析服务状态 |
第四级是网络与应用的分水岭:公网地址能通就说明出网正常,之后所有『打不开』都应转为查解析、端口与应用响应。
第五级除了 dig 也可以用 getent hosts 或 nslookup,注意 glibc 的解析顺序受主机文件与解析配置共同影响,必要时用 getent 看应用真正拿到的结果。
五级命令建议写成一个脚本一次跑完并落盘,既省去反复手敲,也能把当时的地址、网关与解析结果完整留给后续排查使用。
结果要写成一句话结论再交接:例如第三级失败、第四级与第五级未测,责任范围落在局域网到网关之间,比罗列一串命令输出更有用。