Ubuntu Sniffer怎样监控网络状态
小樊
41
2025-12-29 15:41:43
Ubuntu 网络嗅探与监控实用指南
一 工具选型与安装
- 抓包分析:tcpdump(命令行)、Wireshark(图形化,安装时勾选“Allow non-superusers to capture packets”以允许普通用户抓包)
- 实时带宽与连接:iftop(按连接显示速率)、nload(按接口显示速率)、bmon(带宽监控)
- 历史统计:vnstat(按日/月统计)
- 按进程统计:nethogs
- 安装命令:
- sudo apt update
- sudo apt install tcpdump wireshark iftop nload bmon vnstat nethogs
- 提示:抓包工具通常需要 sudo 权限;Wireshark 可通过配置让非 root 用户抓包。
二 快速上手 实时监控
- 查看接口与基线流量:
- ip a(确认接口名,如 eth0、wlan0)
- ip -s link(查看各接口的收发包与字节计数)
- 终端实时带宽:
- nload(选择接口查看入/出站速率与趋势图)
- bmon(交互式查看带宽使用)
- 按连接查看速率与对端:
- sudo iftop -i eth0(按带宽排序,显示源/目的 IP 与端口)
- 命令行抓包查看:
- sudo tcpdump -i eth0 -n(实时打印,不做 DNS 反查,提升速度)
- 按进程查看占用:
- sudo nethogs eth0(实时显示进程 PID、用户、收发速率)
三 精准过滤与问题定位
- BPF 过滤语法示例(tcpdump):
- 按端口:sudo tcpdump -i eth0 port 80
- 按主机:sudo tcpdump -i eth0 host 192.168.1.100
- 按协议:sudo tcpdump -i eth0 udp port 53(DNS)
- 组合条件:sudo tcpdump -i eth0 host 192.168.1.100 and port 80
- 保存与离线分析:
- 抓包:sudo tcpdump -i eth0 -w capture.pcap
- 读取:tcpdump -r capture.pcap 或 Wireshark 打开
- Wireshark 显示过滤(示例):
- http、tcp.port == 80、ip.addr == 192.168.1.100
- 按进程定位异常连接:
- sudo nethogs eth0(快速识别占用带宽的进程)
四 历史统计与长期趋势
- 启动与启用服务:
- sudo systemctl start vnstat && sudo systemctl enable vnstat
- 初始化接口(首次使用):
- 查看统计:
- vnstat(按日/月/总览)
- vnstat -l -i eth0(终端实时观察)
五 合规与性能建议
- 合法合规:仅在获得网络所有者授权的前提下抓包与分析,避免侵犯隐私或违反法规。
- 权限最小化:抓包工具需 sudo;Wireshark 可配置为允许非 root 抓包以降低风险。
- 性能影响:高流量环境避免无过滤的长期抓包;优先使用 BPF 过滤缩小范围,必要时只抓取关键时段或关键主机/端口。
- 数据分析:.pcap 文件解读需要协议知识;新手可先从 Wireshark 的 Statistics 菜单入手。