linux网络排查需由近及远:先用ping 127.0.0.1和ip addr检查协议栈与网卡状态;再ping网关和同网段主机验证局域网连通性;最后ping公网ip和nslookup测试外网与dns解析,并辅以mtr、ss、tcpdump、iptables等命令精确定位问题。

Linux网络不通时,排查要从本机出发、由近及远逐层验证。核心思路是:先确认协议栈和网卡是否就绪,再看局域网通不通,最后判断外网和域名解析是否正常。ping是最直接、最基础的诊断工具,配合少量其他命令就能定位大多数问题。
第一步:验证本地协议栈和网卡状态
这是排查起点,排除系统自身网络功能异常:
- 执行 ping 127.0.0.1 -c 4 —— 若失败,说明TCP/IP协议栈未正常加载或内核网络模块异常,需检查
dmesg | grep -i network或重启网络服务 - 执行 ip addr show(或
ip a)—— 确认主网卡(如 eth0、ens33)处于 UP 状态,并已分配有效IP(非 169.254.x.x 或 0.0.0.0) - 若IP缺失或为链路本地地址,可能是DHCP失败或静态配置未生效,可尝试
sudo dhclient eth0或检查 Netplan/NetworkManager 配置
第二步:测试局域网连通性
确认物理链路、交换机、网关设备是否工作正常:
- 查默认网关:ip route | grep default,获取网关IP(如 192.168.1.1)
- 执行 ping -c 4 192.168.1.1 —— 若超时或“Destination Host Unreachable”,常见原因包括:网线松动、交换机端口故障、网关设备宕机、ARP表异常(可用
arp -a查看)、或目标主机禁用了ICMP响应 - 同一子网内互ping(如 ping 192.168.1.20)—— 可进一步区分是单点故障还是全网中断
第三步:验证外网可达性与DNS解析
区分是路由问题、防火墙拦截,还是域名服务故障:
- 绕过DNS,直接ping公网IP:ping -c 4 8.8.8.8 —— 若通但 ping 域名失败,基本锁定DNS问题;若也不通,说明出向路由或上游网络异常
- 测试DNS解析:nslookup google.com 或 dig www.baidu.com +short —— 若无返回,检查
/etc/resolv.conf中 nameserver 是否配置正确(如 8.8.8.8、114.114.114.114) - 注意:某些环境(如企业内网)可能屏蔽ICMP,此时 ping 不通不代表业务不可用,应结合
curl -I http://example.com或telnet 8.8.8.8 53测试实际端口连通性
辅助手段快速聚焦问题点
当 ping 表现不稳定或结果模糊时,用这些命令补充判断:
- mtr -r -c 50 目标IP —— 合并 traceroute 和 ping 功能,直观显示哪一跳开始丢包或延迟突增
- ss -tuln 或 netstat -tuln —— 查看本机是否有服务监听预期端口,避免误判为“网络不通”实为“服务未启”
- sudo tcpdump -i eth0 icmp -c 10 —— 抓包确认ICMP请求是否发出、回应是否收到,排除静默丢包(如被防火墙静默丢弃)
- sudo iptables -L -n -v 或 sudo firewall-cmd --list-all —— 检查入站/出站规则是否意外阻断了流量










