linux网络监控通过命令行工具与系统配置实现,常用工具包括iftop、iptraf-ng、nethogs、tcpdump、ss、vnstat等,结合SNMP、syslog、iptables日志及/proc文件系统提升监控能力,可通过shell脚本定时采集数据,或使用prometheus+node Exporter+grafana实现自动化告警与可视化,关键在于根据需求选择合适组合,确保及时发现并响应网络异常。

Linux网络监控主要通过命令行工具和系统配置实现,帮助管理员实时掌握网络状态、排查异常流量、优化带宽使用。常见的做法是结合系统自带工具与第三方软件完成数据采集、分析和告警。
常用Linux网络监控工具
以下是一些实用且广泛使用的网络监控工具:
- iftop:实时显示接口的带宽使用情况,按连接排序,类似top命令。安装后直接运行iftop -i eth0即可查看指定网卡流量。
- iptraf-ng:提供图形化界面,支持按协议、端口、主机统计流量,适合初学者。
- nethogs:按进程展示带宽占用,能定位是哪个程序在大量传输出入数据。
- tcpdump:抓包分析工具,可捕获并保存网络数据包用于深入排查问题。
- netstat 或 ss:查看当前连接状态、监听端口和服务,ss -tuln可快速列出所有监听服务。
- vnstat:记录历史流量数据,不实时采样,而是基于系统计数器统计每日/每月流量。
系统级配置与日志监控
除了工具外,合理配置系统有助于提升监控效果:
- 启用SNMP服务(如net-snmp),配合zabbix、Cacti等平台实现远程集中监控。
- 配置syslog将网络相关日志(如防火墙DROP记录)发送到日志服务器。
- 使用iptables日志功能标记可疑连接,例如:iptables -A input -m limit –limit 5/min -j LOG –log-prefix “DROPPED: “。
- 开启/proc/net/dev或/proc/net/sockstat的定期采集,可用于脚本自定义监控逻辑。
自动化监控脚本示例
可通过shell脚本定时检查关键指标:
#!/bin/bash
Interface=”eth0″
RX1=$(cat /proc/net/dev | grep $INTERFACE | awk ‘{print $2}’)
TX1=$(cat /proc/net/dev | grep $INTERFACE | awk ‘{print $10}’)
sleep 1
RX2=$(cat /proc/net/dev | grep $INTERFACE | awk ‘{print $2}’)
TX2=$(cat /proc/net/dev | grep $INTERFACE | awk ‘{print $10}’)
echo “Down: $((RX2-RX1)) B/s | Up: $((TX2-TX1)) B/s”
该脚本计算每秒收发字节数,可加入cron每分钟执行一次,并输出到日志文件。
使用Prometheus + Node Exporter进行可视化监控
现代运维中常采用Prometheus收集指标:
- 安装Node Exporter,暴露机器层面的网络指标(如接收/发送的数据包数)。
- 配置Prometheus抓取目标,设置告警规则(如出口流量突增超过阈值)。
- 搭配Grafana绘制仪表盘,直观展示各时段流量趋势。
基本上就这些方法,从基础命令到集成平台各有适用场景。关键是根据实际需求选择合适的组合方式,做到及时发现异常、快速响应问题。不复杂但容易忽略的是定期校准时间同步和确保监控路径本身不受干扰。