在企业级系统、云原生架构或本地开发环境中,“网络不通”几乎是最频繁也最棘手的问题之一。它可能是一个简单的配置疏漏,也可能是隐藏在多跳链路中的路由错误、服务端口未开放、安全策略限制,甚至是物理链路故障。问题看似简单,实则错综复杂。
为了有效应对这类问题,我们提出一套“网络不通排查五步法”,并将其串联成一条清晰的命令链条,帮助工程师在最短时间内找准症结,避免盲目调试与无效尝试。
一、五步法概览:从底层链路到上层协议
这套方法以“从低到高”、“从通到用”为基本原则,分为以下五步:
步骤 | 核心问题 | 工具命令 | 目标 |
---|---|---|---|
1️⃣ 本机网络状态 | 本机是否具备网络能力 | ip a , ip r , nmcli , ifconfig | 排除自身问题 |
2️⃣ 连通性测试 | 是否能达目标主机 | ping , traceroute / mtr | 定位链路中断位置 |
3️⃣ 端口可达性 | 服务是否监听 / 防火墙是否放行 | telnet , nc , ss , nmap | 验证端口级连通性 |
4️⃣ 协议层分析 | 应用是否能正常通信 | curl , wget , openssl s_client | 判断协议是否握手成功 |
5️⃣ 抓包定位 | 数据包是否正确转发/接收 | tcpdump , wireshark | 精准追踪异常数据流 |
二、第一步:本机网络状态确认
网络不通,先别忙着找别人锅,先看自己是不是瘫了。
✅ 关键命令:
ip a # 查看网卡状态、是否有 IP
ip r # 查看路由表
ping 127.0.0.1 # 本地回环测试
nmcli dev status # NetworkManager 统一查看连接状态
🔍 典型问题:
-
网卡 DOWN、无线未连接
-
没有默认网关或 DNS 配置错误
-
DHCP 未生效,IP 配置缺失
三、第二步:连通性测试
一旦确认本机 OK,下一步是看是否能触达目标地址。
✅ 常用命令:
ping <IP或域名>
traceroute <IP或域名>
mtr <IP> # 实时路由质量分析
🔍 排查点:
-
无法 ping 通?可能是目标主机没开 ICMP、路由不可达、防火墙拦截
-
traceroute 可以定位在哪一跳中断,适用于排查跨区域网络
💡 实战技巧:
-
ping -c 4 -W 2
设置超时和次数,避免阻塞终端 -
使用
mtr
替代traceroute
,可动态观察丢包/延迟点
四、第三步:端口可达性测试
如果 ping 通,说明能到机器;但服务可能没开/被拦。此时要验证端口是否畅通。
✅ 命令组合:
telnet <host> <port> # 适合 TCP 测试
nc -zv <host> <port> # 检查端口是否开放
ss -tunlp # 查看本机监听端口
nmap -p <port> <host> # 探测远程主机端口状态
🔍 常见问题:
-
服务未监听指定端口(ss 无输出)
-
防火墙(如 firewalld / iptables / cloud security group)拦截了端口
-
只监听了 127.0.0.1 而非 0.0.0.0(常见于开发环境)
💡 典型示例:
nc -zv 192.168.1.100 3306
检查 MySQL 服务端口是否可访问
五、第四步:协议层验证
有时端口通,但服务协议本身异常(如 SSL 握手失败、HTTP 500、认证失败等)。这一步检查协议行为是否正确。
✅ 常见命令:
-
HTTP:
curl -v http://example.com
curl -k https://example.com # 跳过证书校验
-
HTTPS / TLS:
openssl s_client -connect example.com:443
-
WebSocket:
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" ...
🔍 排查内容:
-
服务返回 5xx、404 等错误码
-
SSL/TLS 证书过期、域名不匹配
-
请求被重定向、限速、403 禁止
六、第五步:抓包精查
这是网络排查的“放大镜”,用于确认数据是否真的发送/接收成功,非常适用于:
-
双向都通但连接失败
-
数据包被丢弃/篡改
-
认证过程卡死等问题
✅ 抓包命令:
sudo tcpdump -i eth0 port 443 and host 192.168.1.10
✅ 分析步骤:
-
先看三次握手是否完整
-
再分析是否有重传、RST、ACK 异常
-
最后确认应用层响应(如 HTTP Header)
💡 提示:
可结合 Wireshark
可视化查看 .pcap
抓包结果,效果更佳。
七、连不上公网 API 的案例
场景:某台后端服务器访问公网 API https://api.example.com
失败
-
ip a
→ 网卡正常,已配置 IP -
ping 8.8.8.8
→ 不通 →ip r
检查默认路由丢失 -
添加默认路由 →
ping
通 -
curl https://api.example.com
→ 证书校验失败 -
openssl s_client -connect api.example.com:443
→ 域名不匹配 -
发现服务配置了过期证书 → 修复 → 问题解决
八、结语
网络故障是每一位工程师都必须直面的挑战。“重启一下试试”固然是万能口头禅,但真正的高手,靠的是结构化的诊断流程和工具组合拳。
“网络不通排查五步法”正是将纷繁复杂的问题,抽象为一套可执行、可复用的链条式操作体系。
从网络底层到协议应用层,从链路状态到数据行为,只有逐层深入,我们才能真正“看见”问题,而不是“感觉”问题。