跳到主要内容

如何在隔离的网络环境中抓包以防止干扰

直接开启 Wireshark 抓包通常会被大量的其他程序的各种各样的包所淹没,无法专注于特定的目标,那么如何隔离出一个环境,只抓特定程序所产生的包呢?

nsntrace

在独立 namespace 里运行程序并自动抓包:

# 安装
sudo apt install nsntrace

# 一行命令:隔离运行 + 自动抓包
nsntrace -o capture.pcap ./target_app

它自动帮你建 namespace、配网络、抓包,输出的 pcap 里 只有目标程序的流量

Docker

先启动一个用于抓包的测试容器:

docker run --rm -it --name wireshark nicolaka/netshoot

新建一个终端用于抓包,并把抓到的包通过管道传给 Wireshark

docker exec wireshark tcpdump -i eth0 -U -w - | wireshark -k -i -

可以看到 wireshark 内是非常干净的