工具箱按用途归位
网络排障的工具有限,但用途分工很清楚:接口与地址用 ip,链路层速率与错误用 ethtool,连通性用 ping 与 arping,路径用 traceroute 与 mtr,解析用 dig,端口与连接用 ss,应用层诊断用 curl,抓包用 tcpdump 与 tshark,带宽用 iperf3,NAT 会话用 conntrack。故障发生时才去装工具通常来不及,尤其在最小化安装的服务器和生产网络上。
基本信息
| 适用平台 | Linux(Debian/Ubuntu 与 RHEL 系包名不同) |
|---|---|
| 必备组合 | iproute2、iputils、dnsutils/bind-utils、tcpdump、curl、nc、mtr |
| 进阶工具 | ethtool、iperf3、conntrack-tools、nmap、tshark |
| 权限要求 | 抓包与查看连接跟踪表需 root |
| Windows 侧 | Get-NetTCPConnection、Test-NetConnection、Resolve-DnsName、pathping |
工具与一行示例
| 工具 | 用途 | 示例 |
|---|---|---|
| ip / ifconfig | 接口与地址 | ip -br a |
| ethtool | 链路速率、双工与错误计数 | ethtool -S eth0 |
| ping / arping | 三层与二层连通性 | arping -c2 -I eth0 10.0.0.1 |
| traceroute / mtr | 路径与逐跳质量 | mtr -r -c 50 8.8.8.8 |
| dig / nslookup | DNS 解析 | dig +trace example.com |
| ss / netstat | 端口与连接状态 | ss -tulnp |
| nc / telnet | 端口连通测试 | nc -zv 10.0.0.5 443 |
| curl | 应用层诊断 | curl -v --connect-timeout 3 https://example.com/ |
| tcpdump / tshark | 抓包与协议分析 | tcpdump -i any -nn port 80 |
| iperf3 | 带宽与质量测试 | iperf3 -c 10.0.0.9 -t 20 |
| conntrack | 连接跟踪表排查 | conntrack -S |
一次装齐
一次装齐
# Debian / Ubuntu
sudo apt update && sudo apt install -y iproute2 iputils-ping iputils-arping traceroute mtr-tiny dnsutils netcat-openbsd curl tcpdump ethtool iperf3 conntrack
# RHEL / CentOS / Rocky
sudo dnf install -y iproute iputils arping traceroute mtr bind-utils nmap-ncat curl tcpdump ethtool iperf3 conntrack-tools
# 最小化安装的服务器常常缺少 dig / tcpdump / nc,进场前先确认
command -v dig tcpdump nc ss mtr curl故障现场最小清单
- 看地址与网关:ip -br a、ip route,确认本机配置与预期一致
- 看连通与路径:ping、mtr -n -c 50,先把范围界定清楚
- 看端口与监听:ss -tulnp,确认服务真的在听、监听地址是否对外
- 看解析:dig +time=2 @内网DNS 域名,区分解析问题与链路问题
- 看应用层与抓包:curl -v 定位 HTTP 层,tcpdump -nn -c 20 落锤证明包是否到达
按现象选工具
- 报「网站打不开」:先 dig 看解析,再 curl -v 看连接与 HTTP 层,两步就能定位大类
- 报「通但很慢」:mtr 看逐跳延迟与丢包,再抓包看是否有重传与零窗口
- 报「端口不通」:nc -zv 测端口,ss -tlnp 看服务是否真的在监听
- 报「时通时断」:看接口错误计数与链路载体变化次数,先排除物理层
- 报「只有某些用户受影响」:先用 fping 批量取样界定范围,再决定查哪一段
生产服务器上临时安装工具要先评估依赖、磁盘空间与合规要求;受限环境优先使用系统自带工具(例如用 ss 替代 netstat,用 ip 替代 ifconfig)。