我的电脑上有两个网络接口。
netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 27186 0 0 0 20784 0 0 0 BMRU
lo 65536 0 42025 0 0 0 42025 0 0 0 LRU
通过lo的包可以通过。
捕获sudo tcpdump -i lo
通过eth0的包可以通过。
捕获sudo tcpdump -i eth0
如何同时通过eth0和lo捕获包裹?
sudo tcpdump -i eth0 -i lo 无法正常工作
sudo tcpdump -i eth0 -i lo = sudo tcpdump -i eth0 = sudo tcpdump
答案 0 :(得分:1)
假设您的内核支持它,您可以运行tcpdump -i any
,但这会捕获 所有 接口,而不仅仅是lo
和eth0
接口。此外,根据tcpdump
man page," ...捕获''任何''设备不会以混杂模式完成。" ,因此如果您需要将NIC置于混杂模式以捕获您感兴趣的流量,此解决方案可能不适合您。在这种情况下,您可以:
答案 1 :(得分:1)
您可以尝试的另一种选择是在两个接口并行运行tcpdump进程,例如
sudo tcpdump -i lo& 须藤tcpdump -i eth0&
&将使其在后台运行
由此也可以消除由“ any”选项引起的数据包泛滥的问题,您可以达到仅捕获两个接口的捕获目的
答案 2 :(得分:0)
来自https://serverfault.com/questions/805006/tcpdump-on-multiple-interfaces
<块引用>我处理这个问题的方法是在每个接口上转储到 单独的文件,然后合并它们。 any 接口还包括 lo 可能污染捕获的流量。
这也允许分析每个接口的数据包流 没有复杂的过滤。
我会在 3 个终端中捕获或通过使用 &
后台命令来捕获标志 -nn 关闭 dns 分辨率以提高速度,-s 0 保存完整 packet 和 -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 merge.dump wan0.dump wan1.dump lan0.dump