多个接口上的tcpdump


17

我需要捕获CentOS 5服务器上的流量,该服务器充当具有2个WAN接口和1个LAN的Web代理。为了解决奇怪的代理问题,我想记录一下完整的对话。由于两个WAN接口之间的外部连接是平衡的,因此我想知道是否有可能同时捕获所有接口。

我以前使用过tcpdump,但一次只允许一个接口。我可以启动3个并行进程以在所有接口上进行捕获,但是最后得到3个不同的捕获文件。

正确的做法是什么?


AdamRushad是正确的。您也可以使用wireshark
瑞安·巴布钦

Answers:


25

根据tcpdump手册页:

在具有2.2或更高版本内核的Linux系统上,接口参数“ any”可用于捕获来自所有接口的数据包。请注意,在“ any”设备上捕获不会在混杂模式下完成。

因此,您应该能够运行:tcpdump -i any为了将所有接口上的数据同时捕获到单个捕获文件中。


2
如果我要捕获部分但不是全部接口,那是行不通的
Thayne

9

我要解决的方法是在每个接口上转储到一个单独的文件,然后合并它们。any接口还包括可能污染捕获的流量。

这也允许分析每个接口的数据包流,而无需复杂的过滤。

我可以在3个终端中捕获,也可以通过在&后台添加命令来捕获

标志-nn关闭dns分辨率以提高速度,-s 0保存完整的数据包,而-w写入文件。

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

然后,我将使用wireshark中的mergecap命令合并文件:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump

2

要在所有接口上捕获tcpdump,请使用

tcpdump -i any

2
2年前在亚当·鲁沙德(Adam Rushad)的回答中已经给出了答案。
Patrick Mevzek '19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.