我有一台配置为路由器的 Linux 机器,具有两个面向 LAN A 和 LAN B 的接口。我想使用 tcpdump 过滤从 LAN A 到 LAN B 的流量(入站流量),但是我没有 LAN 的子网信息(不是这个:dst net subnetB)?
答案1
eth0
我不完全明白你想要什么,但是如果你想捕获内核从一个接口到另一个接口转发(如路由)的数据包eth1
,你可以添加这条iptables
规则:
iptables -A FORWARD -i eth0 -o eth1 -j NFLOG
然后,使用tcpdump
或wireshark
从 Netfilter Log 伪接口(tcpdump
通过使用nflog
作为接口名称)捕获数据包,该接口读取目标看到的数据包NFLOG
。
如果你还想记录反向传输的数据包,只需插入另一条 iptables 规则:
iptables -A FORWARD -i eth0 -o eth1 -j NFLOG
从 wireshark/tcpdump 只能看到实际转发的数据包。从主机发送的数据包或未经转发而接收的数据包不会被捕获。但您仍然可以通过在INPUT
或中添加更多 NFLOG 规则来决定捕获它们OUTPUT
。
另外,请注意 CPU 使用率:使用速度可能NFLOG
比直接从接口捕获慢。