Ubuntu 下 Sniffer 监控网络状态实用指南
一 工具选择与定位
- tcpdump:命令行抓包与分析,适合对实时流量、端口、协议进行精确过滤与排查,也可将数据包保存为 pcap 供后续分析。
- Wireshark:图形化协议分析器,适合深度解析与可视化排查。
- iftop:按连接/主机维度实时显示带宽占用,快速识别占用带宽的对端。
- nethogs:按进程维度显示网络占用,定位异常进程最便捷。
- nload / bmon / vnstat:面向接口级速率与历史统计的轻量工具,适合持续观测与报表。
- Glances:全系统监控(含网络),支持Web 远程查看,便于统一运维。
以上工具均为 Ubuntu 常见选择,覆盖从抓包到带宽、进程、历史统计的多维监控需求。
二 快速上手 tcpdump 抓包监控
- 安装与基本用法
- 安装:
sudo apt-get update && sudo apt-get install tcpdump
- 指定网卡抓包:
sudo tcpdump -i eth0 -n(加 -n 以数字显示地址与端口)
- 监控所有接口:
sudo tcpdump -i any
- 常用过滤与目标场景
- 按端口:
sudo tcpdump -i eth0 port 80(HTTP)
- 按协议与端口:
sudo tcpdump -i eth0 udp and port 53(DNS)
- 按主机:
sudo tcpdump -i eth0 host 192.0.2.10
- 保存与回放分析
- 保存:
sudo tcpdump -i eth0 -w capture.pcap
- 读取:
sudo tcpdump -r capture.pcap -nn
- 读取并显示更详细统计:
sudo tcpdump -i eth0 -v -r capture.pcap
- 实用提示
- 抓包需要管理员权限(sudo)。
- 过滤器表达式越精确,越利于快速定位问题。
以上命令覆盖接口选择、过滤、保存与回放等核心操作,适合日常排障与状态观测。
三 带宽与进程维度的实时监控
- 按连接/主机带宽:iftop
- 安装:
sudo apt-get install iftop
- 运行:
sudo iftop(实时查看各连接的发送/接收速率)
- 按进程带宽:nethogs
- 安装:
sudo apt-get install nethogs
- 运行:
sudo nethogs eth0(替换为你的网卡名)
- 接口速率与历史统计
- nload:
sudo apt-get install nload;运行:nload(分网卡显示当前/平均速率)
- bmon:
sudo apt-get install bmon;运行:bmon(交互式查看与多视图)
- vnstat:
sudo apt-get install vnstat;运行:vnstat(历史统计),vnstat -l(实时观察)
- 全系统资源与远程
- Glances:
sudo apt-get install glances;Web 模式:pip3 install "glances[web]" && glances -w(默认端口 61208)
以上工具组合可快速回答“谁在占用带宽、占用多少、对端是谁、历史趋势如何”等关键问题。
四 进阶组合与自动化
- 抓包+进程定位:先用 iftop/nethogs 发现异常连接或进程,再用 tcpdump -i eth0 host and port <端口> 精准抓包取证。
- 抓包+深度分析:用 tcpdump -w 保存 pcap,再用 Wireshark 打开做协议级细查。
- 长期观测与报表:用 vnstat 记录历史流量,定期生成报表;对关键时段用 tcpdump 短时抓包定位。
- 自动化采集与告警:编写脚本定时执行 tcpdump(如按 -c 包数或时间切分),配合日志轮转与简单统计,必要时接入告警通道。
上述方法兼顾实时性与事后分析,适合线上持续监控与问题复盘。
五 合规与性能提示
- 合法合规:抓包可能触及隐私与合规要求,务必在获得授权的网络与主机上操作。
- 性能影响:抓包尤其是全量抓包会带来CPU/磁盘/内存开销;尽量使用精确过滤表达式,必要时限制时长或包数,并避免在生产高峰长时间抓包。
- 权限与环境:抓包通常需要 root 权限;在 Cron 等自动化场景确保 sudo 可用、路径与日志目录可写。
以上注意事项有助于在保证安全合规的前提下,最大化发挥 Sniffer 的监控价值。