
服务器连不上?网站打不开?接口超时?作为运维人员,网络故障是最常遇到的问题之一。本文整理了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规则,往往能省下大量排查时间。
排查思路总结
遇到网络问题时,建议按以下顺序排查:
物理层:ethtool检查网卡链路
网络层:ping测试连通性
路由层:traceroute/mtr检查路由
DNS层:dig检查域名解析
传输层:ss检查端口监听状态
防火墙:iptables检查规则
应用层:curl测试HTTP服务
终极手段:tcpdump抓包分析
记住这个顺序,网络问题基本都能定位到。
评论