温馨提示×

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(确认接口名,如 eth0wlan0
    • 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
  • 初始化接口(首次使用):
    • sudo vnstat -u -i eth0
  • 查看统计:
    • vnstat(按日/月/总览)
    • vnstat -l -i eth0(终端实时观察)

五 合规与性能建议

  • 合法合规:仅在获得网络所有者授权的前提下抓包与分析,避免侵犯隐私或违反法规。
  • 权限最小化:抓包工具需 sudo;Wireshark 可配置为允许非 root 抓包以降低风险。
  • 性能影响:高流量环境避免无过滤的长期抓包;优先使用 BPF 过滤缩小范围,必要时只抓取关键时段或关键主机/端口。
  • 数据分析:.pcap 文件解读需要协议知识;新手可先从 Wireshark 的 Statistics 菜单入手。

0