Linux 网络监测是系统管理员和开发人员日常运维中至关重要的一环,它涵盖了从基础的连通性测试到深层的流量分析、延迟监控以及安全审计等多个层面。
以下是 Linux 网络监测的核心工具分类、常用命令详解以及最佳实践建议。
基础连通性与配置检查
在深入分析之前,首先要确认网络接口状态和基础连通性。
ip 命令 (替代 ifconfig)
现代 Linux 发行版推荐使用 iproute2 套件中的 ip 命令。
- 查看接口状态和 IP 地址:
ip addr show # 或简写 ip a
- 查看路由表:
ip route show # 或简写 ip r
- 查看 ARP 缓存:
ip neigh show
ping – 连通性测试
- 测试目标主机是否可达及延迟。
ping -c 4 google.com
traceroute / tracepath – 路径追踪
- 查看数据包从源到目的地经过的路由节点,用于定位网络瓶颈或故障点。
traceroute google.com # 如果未安装 traceroute,可使用 tracepath tracepath google.com
nslookup / dig – DNS 解析检查
- 检查域名解析是否正确,DNS 服务器响应时间。
dig google.com nslookup google.com
实时流量与端口监控
netstat vs ss
- 注意:
netstat已逐渐被弃用,推荐使用ss(Socket Statistics)。 - 查看当前网络连接:
ss -tulnp # -t: TCP, -u: UDP, -l: 监听状态, -n: 数字形式显示, -p: 显示进程名
- 查看特定端口的连接数:
ss -an | grep :80 | wc -l
iftop – 实时带宽监控
- 类似
top命令,但以图形化方式显示每个连接的实时带宽使用情况。- 安装:
sudo apt install iftop或sudo yum install iftop - 使用:
sudo iftop -i eth0
- 安装:
nethogs – 按进程监控带宽
- 查看哪个进程正在占用最多的带宽,非常适合排查“谁在下载东西”的问题。
- 安装:
sudo apt install nethogs - 使用:
sudo nethogs eth0
- 安装:
watch + 简单命令 – 持续监控
- 持续刷新查看网络状态。
# 每2秒刷新一次网络连接数 watch -n 2 "ss -s"
数据包深度分析 (抓包)
tcpdump – 命令行抓包工具
-
强大的底层网络诊断工具,能捕获经过网卡的所有数据包。
# 捕获 eth0 接口上所有 HTTP (端口80) 流量 sudo tcpdump -i eth0 port 80 # 捕获与特定 IP 的通信 sudo tcpdump host 192.168.1.100 # 将捕获内容保存到文件,供后续分析 sudo tcpdump -i eth0 -w capture.pcap
Wireshark / tshark – 图形化/命令行 GUI 分析
- Wireshark: 图形界面,适合深入分析协议细节。
- tshark: Wireshark 的命令行版本,适合脚本化和服务器环境。
# 使用 tshark 过滤 HTTP 请求 tshark -i eth0 -Y "http.request"
高级网络性能与诊断工具
mtr – 综合诊断工具
- 结合
ping和traceroute的功能,持续追踪路由并统计丢包率和延迟抖动。
mtr google.com
iperf3 – 带宽吞吐量测试
- 用于测试两个节点之间的最大带宽、延迟、抖动和丢包率。
- 服务端:
iperf3 -s - 客户端:
iperf3 -c <server_ip>
- 服务端:
ethtool – 网卡驱动与硬件信息
- 查看网卡硬件状态、速度、双工模式、错误计数等。
ethtool eth0
nload – 实时流量图表
- 以简洁的图表形式显示流入和流出流量。
sudo nload eth0
系统级网络指标监控 (Prometheus/Grafana/Zabbix)
对于生产环境,建议使用专业的监控平台:
-
关键指标:
- 带宽利用率: 入站/出站流量 (bits/sec)
- 错误包数:
rx_errors,tx_errors - 丢包率:
rx_dropped,tx_dropped - 连接数: 当前 TCP 连接总数、TIME_WAIT 状态连接数
- TCP 重传率: 高重传率通常意味着网络拥塞或线路质量差
-
常用监控栈:
- Node Exporter + Prometheus + Grafana: 最流行的开源监控方案,可可视化展示上述所有指标。
- Zabbix: 企业级监控,适合复杂告警规则。
- Netdata: 实时、高保真度的系统监控,无需配置即可快速部署。
常见网络问题排查思路
| 现象 | 可能原因 | 推荐工具 |
|---|---|---|
|
无法访问网站 | DNS 解析失败、防火墙拦截、路由问题 | dig, ping, traceroute, iptables -L |
| 网速慢 | 带宽耗尽、TCP 重传、MTU 不匹配 | iftop, iperf3, ethtool, tcpdump |
| 连接频繁断开 | 防火墙超时设置、NAT 表溢出、网卡错误 | ss -s, dmesg | grep eth, sysctl net.ipv4.ip_conntrack_max |
| CPU 高但无业务 | 大量 SYN 攻击、DDoS、中断处理过高 | top, ss -an | grep SYN, sar -n DEV |
最佳实践建议
- 定期基线: 记录正常情况下的网络指标(如平均带宽、正常连接数),以便在异常时快速对比。
- 自动化告警: 设置阈值告警(如丢包率 > 1%,带宽利用率 > 80%)。
- 日志集中管理: 将
dmesg中的网络错误日志、/var/log/messages中的内核网络日志集中收集分析。 - 安全审计: 定期检查
ss -tulnp和iptables/nftables规则,确保没有未授权的开放端口。 - 避免在生产高峰抓包:
tcpdump和Wireshark会消耗大量 CPU 和磁盘 I/O,建议在低峰期或使用远程镜像端口(SPAN)进行抓包。
如果你有具体的网络问题(如“为什么我的服务器延迟高”或“如何监控特定端口”),可以提供更多细节,我可以给出更针对性的解决方案。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/477348.html



