温馨提示×

Ubuntu Sniffer如何实现远程监控

小樊
47
2025-12-25 17:56:33
栏目: 智能运维

Ubuntu Sniffer 远程监控实现指南

一、方案总览

  • 在目标 Ubuntu 上用抓包工具(如 tcpdump)抓取并导出流量,在本地或集中端进行分析与展示。
  • 常用路径:
    • 实时远程查看:SSH 隧道转发到本地 Wireshark(推荐,图形化强)。
    • 实时图形化:SSH 远程执行 tcpdump,本地 EtherApe 直接读取。
    • 离线分析:远程保存 pcap 文件,拷回本地用 Wireshark 打开。
    • 持续自动化:远程按时间/数量轮转抓包,集中收集与归档。

二、前置条件与权限

  • 目标主机抓包需 root 或具备 CAP_NET_RAW/CAP_NET_ADMIN 能力;远程登录建议使用 SSH 密钥 并限制 sudo 到必要命令。
  • 合规要求:仅在自有网络或取得明确授权的主机上抓包,避免违反隐私与法律。

三、方法一 SSH 隧道 + Wireshark 实时分析(推荐)

  • 在 Ubuntu 安装 Wireshark(可选,本地分析端):sudo apt-get install wireshark
  • 建立 SSH 本地端口转发,将远程网卡流量经 SSH 隧道送到本地 localhost:2002
    • ssh -f -N -L 2002:localhost:2002 user@remote-host
  • 在本地 Wireshark 中捕获接口选择 “Loopback: lo”,在捕获过滤器输入:
    • udp port 2002
  • 在远程主机启动抓包并转发到隧道端口(需 root):
    • sudo tcpdump -i any -U -s 0 -w - ‘not port 22’ | nc -l -p 2002
  • 说明:
    • -U 使输出为“无缓冲”,-s 0 抓取完整包,-w - 写到 stdout,nc 将流量经 SSH 隧道送到本地 Wireshark。
    • 过滤掉 port 22 可避免 SSH 自身流量干扰;如需更细粒度,可在 tcpdump 表达式里加 host/port 条件。
    • 若远程主机无法直连外网或仅允许跳板机访问,可在跳板机上再转发一次端口。上述流程基于 tcpdump 的远程抓包与 Wireshark 远程捕获能力实现。

四、方法二 远程 tcpdump + 本地 EtherApe 图形化

  • 在本地安装 EtherApe:sudo apt-get install etherape
  • 通过 SSH 直接在远程执行 tcpdump,把 pcap 流实时送入本地 EtherApe:
    • ssh remote-host sudo tcpdump -n -w - ‘not port 22’ | etherape -m ip -r -
  • 说明:
    • -n 不做 DNS 解析,-w - 输出到 stdout,etherape -r - 从标准输入读取 pcap 流并实时渲染主机/协议拓扑与流量粗细。
    • 适合需要“看图识流量”的场景;如需长期运行,建议配合 screen/tmux 或 systemd 服务托管。EtherApe 支持从活动网络或文件读取,并可用 tcpdump -n -w 生成文件后再离线打开。

五、方法三 离线抓包与自动化轮转

  • 远程按时间/数量自动轮转抓包(便于事后分析):
    • 每 10 秒生成一个 pcap,最多保留 10 个文件:
      • sudo tcpdump -i any -w capture_%Y%m%d_%H%M%S.pcap -G 10 -W 10
  • 将 pcap 文件安全拷回本地(示例):
    • scp user@remote-host:/path/capture_*.pcap /local/analysis/
  • 本地用 Wireshark 打开分析;如需批量统计,可结合 tshark(Wireshark 命令行):
    • tshark -r capture_20251225_103000.pcap -q -z io,stat,1
  • 自动化与归档建议:
    • 使用 cron 定时执行抓包脚本并同步到对象存储/集中服务器。
    • 为抓包目录设置磁盘配额与日志轮转,避免磁盘被占满。上述 tcpdump 写文件、读取与分析流程可直接用于离线场景。

0