linux网络排查需按层递进:先查本机接口状态(ip addr、ethtool),再逐级ping(127.0.0.1→本机IP→网关→8.8.8.8→baidu.com),接着验证路由(ip route)和dns(resolv.conf、dig),最后检测端口(nc/nmap)与防火墙(iptables/firewalld)。

Linux网络异常排查,核心是按层递进、由近及远:先确认本机协议栈和接口是否就绪,再逐级验证局域网、网关、外网、DNS和应用端口。不盲目重启,也不跳步查DNS却忽略物理链路。
看接口:确认网卡启用且地址有效
用 ip addr show 查所有接口状态。重点看三点:接口名(如 eth0、ens33)是否显示 UP;是否有合法 IPv4 地址(非 169.254.x.x 这类链路本地地址);mac 地址是否正常。若为 DOWN 状态,执行 sudo ip link set eth0 up 启用;若无地址且应走 DHCP,运行 sudo dhclient eth0 尝试获取。也可用 ethtool eth0 看物理链路是否连通(Link detected: yes)。
测连通:分四步 ping 出问题在哪一环
按顺序执行,中断即定位故障层级:
- ping 127.0.0.1 —— 失败说明本机 TCP/IP 协议栈异常(极少见,多为内核模块损坏)
- ping 本机局域网IP(如 192.168.1.100)—— 失败表示接口配置未生效或驱动异常
- ping 网关IP(ip route | grep default | awk ‘{print $3}’ 可快速获取)—— 失败大概率是物理断连、交换机故障、VLAN 配置错或 MAC 过滤拦截
- ping 8.8.8.8 再 ping baidu.com —— 前者通后者不通,基本锁定 DNS 问题;两者皆不通但网关通,可能是路由策略、防火墙 DROP 或运营商限制
查路由与 DNS:看清数据往哪走、域名怎么解
用 ip route show 确认默认路由是否存在且指向正确网关;若需访问特定网段(如 10.20.0.0/16),检查是否有对应条目,没有可临时加:sudo ip route add 10.20.0.0/16 via 192.168.1.1 测试。DNS 方面,先看 cat /etc/resolv.conf 是否含可用 nameserver(如 114.114.114.114 或 8.8.8.8);再用 dig baidu.com @8.8.8.8 绕过系统配置直连测试,若成功说明本地 DNS 配置或缓存异常;加 +trace 参数(dig +trace baidu.com)可观察解析逐级过程,识别卡在哪一级服务器。
验端口与防火墙:服务通不通、流量放不放
即使网络层通,应用也可能被拦。用 nc -zv 目标IP 端口(如 nc -zv 192.168.1.100 22)测 TCP 端口是否开放;批量扫描可用 nmap -p 22,80,443 目标IP。本机防火墙常是隐形杀手:sudo iptables -L -n -v 查规则,重点关注 OUTPUT 和 FORWARD 链;systemd 系统还可运行 sudo firewall-cmd –list-all。若怀疑是它,临时禁用测试:sudo systemctl stop firewalld(centos/RHEL)或 sudo ufw disable(ubuntu/debian)。
基本上就这些。流程不复杂,但容易忽略物理层和 DNS 缓存这类“低级”环节。动手前花十秒看灯、看 IP、ping 三次,省下大把时间。