Linux网络故障排查需按层推进:先查网卡UP与IP配置(ip a/ip link),再依序ping 127.0.0.1、本机IP、网关、8.8.8.8及域名,继而验DNS、防火墙、路由路径、端口连通性与网卡错误计数。

Linux网络状态检测不是靠猜,而是按层推进、由近及远。核心逻辑就一条:先确认本机能“说话”,再看它“跟谁说”“说得通不通”“说得对不对”。只要顺序不乱,90%的问题一眼就能定位。
看网卡和IP配得对不对
网络连不上,第一反应不该是重启或重装,而是查物理层和网络层基础是否就位。
- 用 ip a 查接口状态——重点看你要用的网卡(如ens33或eth0)是不是 UP,有没有 inet(IPv4)地址;如果只有 169.254.x.x,说明 DHCP 没拿到地址,属于配置失败
- 用 ip link show 看链路是否检测到(Link detected: yes),配合网卡灯判断网线、交换机端口是否真通
- 用 ip route show 找 default via 行——没有默认路由,数据包根本不知道往哪发,外网必然不通
测连通性要分四步走
ping 不是随便 ping 一个域名就完事,必须按顺序验证协议栈、本地接口、局域网出口、外部服务四个层级。
-
ping 127.0.0.1 -c 4:通不过=系统TCP/IP协议栈异常,不是网络问题,是系统级故障
-
ping 本机局域网IP -c 4:不通=网卡驱动、接口DOWN、或IP配错
-
ping 网关IP -c 4:不通但前两步都通,问题在网线、交换机、网关设备或ARP异常
-
ping 8.8.8.8 -c 4 和 ping baidu.com -c 4 对比:前者通后者不通→DNS问题;两者都不通→网关之后断了,该上 traceroute
查DNS和防火墙别跳过
能通IP但打不开网页,八成栽在这两个地方。它们不拦“连”,只拦“用”,容易被忽略。
- 看 cat /etc/resolv.conf 是否有 nameserver 行,且地址可用;临时改成 nameserver 8.8.8.8 再试,立判真假
- 用 nslookup baidu.com 或 dig baidu.com 直接看解析结果,比 ping 域名更准——因为绕过了系统缓存和hosts干扰
- 查防火墙:sudo iptables -L -n -v(iptables)或 sudo firewall-cmd --list-all(firewalld),重点看 OUTPUT 和 FORWARD 链是否误拦了出站流量
追路径和看端口补最后缺口
前面都通却访问不了某个服务?说明问题不在“通不通”,而在“达不达”或“开不开”。
-
traceroute baidu.com 或 mtr -r baidu.com:看到哪一跳开始 * * * 或延迟暴增,就锁定故障节点(比如第三跳超时,大概率是运营商出口或中间路由器问题)
-
nc -zv baidu.com 443 测试目标端口是否开放;ss -tuln | grep :80 查本机有没有程序真在监听80端口——服务没起、端口被占、绑定错地址,都会导致“连得上却打不开”
- 怀疑丢包或性能差?cat /proc/net/dev 看 RX-ERR/TX-DRP 是否非零,持续增长说明网卡、驱动或线路有硬伤
基本上就这些。不复杂但容易忽略——关键不是记命令,而是理解每一步在验证哪一层、排除哪类可能。照着顺序敲几遍,下次网络一抖,你心里就有谱了。
以上就是Linux网络状态怎么检测_核心逻辑讲解助你快速掌握【技巧】的详细内容,更多请关注php中文网其它相关文章!