如何定义iptables规则将所有传输添加到给定的接口nfqueue

在Ubuntu上运行。 我有机器1 < – >机器2 < – >机器3.我不知道机器1或机器3 IP。 它可以是任何IP。 机器1将数据包发送给机器3,机器3将数据包发送给机器1。

机器2被用作桥梁:

ifconfig eth0 0.0.0.0 ifconfig eth2 0.0.0.0 brctl addbr br0 brctl addif br0 eth0 eth2 ifconfig br0 up 

我想在机器2有一个iptable规则,将添加到eth0的所有stream量到nfqueue1和到eth2的所有stream量到nefqueue2。

现在我有以下规则:

 iptables -A FORWARD -p tcp -j NFQUEUE --queue-num 0 

这对我来说不好,因为我想区分来自机器3的stream量和来自机器1的stream量,所以我想要有2个规则。

将-i eth0添加到规则不起作用。

由于您正在使用桥接器,因此您需要使用-m physdev

运行iptables -m physdev -h – 如果你编译自己的内核,你可能需要添加这个模块。