Linux网络故障排查实战:10个你必须掌握的命令

运维  ·  2026-06-26

Linux网络排查

服务器连不上?网站打不开?接口超时?作为运维人员,网络故障是最常遇到的问题之一。本文整理了10个最实用的Linux网络排查命令,从基础到进阶,帮你快速定位问题。

1. ping — 最基础的连通性测试

# 测试到目标主机的连通性
ping -c 4 8.8.8.8

# 指定网卡ping
ping -I eth0 192.168.1.1

# 设置超时时间
ping -W 3 -c 4 example.com

如果ping不通,说明网络层就不通。如果ping通但服务不可用,问题在应用层。

2. traceroute/mtr — 追踪路由路径

# 追踪到目标的路由路径

traceroute example.com

 更推荐mtr,实时刷新

mtr example.com

 mtr报告模式,发100个包

mtr -r -c 100 example.com

mtr比traceroute更强大,能显示每一跳的丢包率和延迟,是排查中间链路问题的利器。

3. ss/netstat — 查看端口和连接状态

# 查看所有监听端口(推荐ss)
ss -tlnp

 查看所有TCP连接状态

ss -s

 查看特定端口

ss -tlnp | grep :80

 查看连接状态统计ss -s | head -5

ss是netstat的替代品,速度更快。如果发现大量TIME_WAIT或CLOSE_WAIT,说明连接有问题。

4. curl/wget — 测试HTTP服务

# 测试HTTP响应

curl -I http://example.com

 查看详细连接过程

curl -v http://example.com

 测试HTTPS并忽略证书

curl -k https://example.com

 测量响应时间

curl -o /dev/null -s -w "连接: %{time_connect}s\nTTFB: %{time_starttransfer}s\n总计: %{time_total}s\n" http://example.com

curl的-w参数可以精确测量每个阶段的耗时,非常适合排查慢请求。

5. dig/nslookup — DNS解析排查

# 查询A记录
dig example.com

 指定DNS服务器

dig @8.8.8.8 example.com

 查询所有记录类型

dig example.com ANY

 反向解析

dig -x 8.8.8.8

 简洁输出

dig +short example.com

如果域名解析不到IP,先检查DNS配置 /etc/resolv.conf,再用dig指定公共DNS测试。

6. tcpdump — 抓包分析

# 抓取80端口的流量
tcpdump -i eth0 port 80

 抓取特定主机的流量

tcpdump -i eth0 host 192.168.1.100

 保存到文件,用Wireshark分析

tcpdump -i eth0 -w capture.pcap

 抓DNS查询

tcpdump -i eth0 port 53

 抓SYN包(看连接建立)

tcpdump -i eth0 "tcp[tcpflags] & (tcp-syn) != 0"

tcpdump是网络排查的终极武器。当其他方法都找不到问题时,抓包看看实际发生了什么。

7. ip/ifconfig — 查看网络接口

# 查看所有接口和IP
ip addr show

 查看路由表

ip route show

 查看特定接口

ip addr show eth0

 查看ARP表

ip neigh show

ip命令是ifconfig的替代品,功能更强大。如果发现接口没有IP或路由表异常,问题就在本机配置。

8. nmap — 端口扫描

# 扫描目标主机开放端口
nmap -sT example.com

 快速扫描常用端口

nmap -F example.com

 扫描整个网段

nmap -sn 192.168.1.0/24

 检测服务版本

nmap -sV example.com

当不确定服务是否正常监听时,用nmap从外部扫描一下就知道了。

9. ethtool — 网卡硬件诊断

# 查看网卡信息
ethtool eth0

 查看网卡统计信息

ethtool -S eth0

 检查链路状态

ethtool eth0 | grep "Link detected"

如果网卡显示Link detected: no,说明物理连接有问题(网线、交换机端口等)。

10. iptables/nftables — 防火墙排查

# 查看iptables规则
iptables -L -n -v

 查看NAT表

iptables -t nat -L -n -v

 查看是否有DROP规则命中

iptables -L -n -v | grep DROP

 临时放行端口测试

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

很多"网络不通"的问题其实是防火墙规则导致的。先检查iptables/nftables规则,往往能省下大量排查时间。

排查思路总结

遇到网络问题时,建议按以下顺序排查:

  1. 物理层:ethtool检查网卡链路

  2. 网络层:ping测试连通性

  3. 路由层:traceroute/mtr检查路由

  4. DNS层:dig检查域名解析

  5. 传输层:ss检查端口监听状态

  6. 防火墙:iptables检查规则

  7. 应用层:curl测试HTTP服务

  8. 终极手段:tcpdump抓包分析

记住这个顺序,网络问题基本都能定位到。

评论
远方. All Rights Reserved. Theme Jasmine by Kent Liao.