如何在隔离的网络环境中抓包以防止干扰
直接开启 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 内是非常干净的

