我需要捕获CentOS 5服务器充当具有 2 个 WAN 接口和 1 个 LAN 的 Web 代理。为了解决奇怪的代理问题,我想捕获完整的对话。由于外部连接在两个 WAN 接口之间是平衡的,我想知道是否可以捕获同时地在所有接口上。
我以前用过tcpdump
,但它一次只允许一个接口。我可以启动 3 个并行进程来捕获所有接口,但最终会得到 3 个不同的捕获文件。
正确的做法是什么?
答案1
如果您使用 wireshark/tshark,则有一个名为“any”的伪接口,它接受所有接口。Wireshark
tshark -i any
适用于所有平台
编辑 :libpcap 的任何接口都依赖于它:tcpdump 都有它!tcpdump -i any
答案2
我遇到了一个问题,当我尝试转储广播流量时任何接口,但设备上的 tcpdump 回复不是广播链接当我尝试的时候。
# tcpdump -i any broadcast -nn -v
tcpdump: not a broadcast link
我发现我可以并行运行多个命令来获得所需的结果。虽然这不是最漂亮的,但对我来说很有效。
tcpdump -i ath0 broadcast -n & tcpdump -i ath1 broadcast -n & tcpdump -i ath2 broadcast -n & tcpdump -i ath3 broadcast -n & tcpdump -i ath4 broadcast -n & tcpdump -i ath5 broadcast -n & tcpdump -i ath6 broadcast -n & tcpdump -i ath7 broadcast -n & tcpdump -i ath8 broadcast -n &
然后终止所有并行作业并停止转储:
kill `jobs -p`