在Linux上配置网络监控和流量分析可以通过多种工具实现,以下是一套完整的解决方案,涵盖实时监控、流量分析和日志记录:
sudo apt install iftop # Debian/Ubuntu
sudo yum install iftop # CentOS/RHEL
sudo iftop -i eth0 # 监控指定网卡
nload eth0 -m -u M # 以MB为单位显示
sudo vnstat -l -i eth0 # 实时监控
sudo vnstat -d -i eth0 # 每日报告
sudo vnstat --create -i eth0 # 初始化数据库
wget https://packages.ntop.org/apt-stable/`lsb_release -cs`/all/apt-ntop-stable.deb
sudo dpkg -i apt-ntop-stable.deb
sudo apt-get update
sudo apt-get install ntopng
sudo systemctl start ntopng
# 访问 https://localhost:3000 (默认admin/admin)
curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-7.x.x-amd64.deb
sudo dpkg -i packetbeat-*.deb
output.elasticsearch:
hosts: ["localhost:9200"]
sudo tshark -i eth0 -f "tcp port 80" -w capture.pcap
sudo suricata -c /etc/suricata/suricata.yaml -i eth0
sudo apt install smokeping
# 配置/etc/smokeping/config
# 服务端:
iperf3 -s
# 客户端:
iperf3 -c server_ip -t 30
使用Prometheus + Grafana: 1. 安装node_exporter采集基础指标 2. 使用snmp_exporter监控网络设备 3. Grafana仪表板示例ID:11074(网络流量看板)
# 分析/var/log/syslog中的网络事件
grep -i "network" /var/log/syslog | awk '{print $1,$2,$3}'
使用Docker运行NetData:
docker run -d --name=netdata \
-p 19999:19999 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
netdata/netdata
sudo nethogs eth0
ss -s
ip -s route show cache
根据需求选择工具组合: - 简单监控:iftop + vnStat - 企业级分析:nTopng/ELK + Suricata - 云环境:Prometheus + NetData
所有工具安装后建议配置: 1. 日志轮转(logrotate) 2. 适当的权限控制 3. 定时任务定期生成报告(如vnStat日报)