iptables桥redirect也redirect其他接口

运行一个Ubuntu 14.04LTS家庭服务器机器。 我有一个小的物联网设备,发送HTTPpost到我想redirect到本地进程的远程web服务器(基本上拦截它的post到我自己的本地进程)。 服务器使用eth0(内置以太网端口),IOT设备在eth1上,这是一个USB以太网适配器。 我在/ etc / network / interfaces中创build了一个

auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 eth1 

我使用下面的iptables规则redirect到本地端口22041桥stream量。这工作正常。

 iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 22041 

问题是,当局域网上的任何东西试图访问网页时,似乎也将端口80的stream量redirect到服务器。 如果我从服务器运行“firefox http://127.0.0.1/page ”,它工作正常。 如果我从LAN上的另一台机器上运行“firefox httpt:// server_ip / page”,它会被redirect到端口22041。

我以为'-i br0'只会将这条规则应用于来自桥上的交通,但显然这不是发生的事情。 如何阻止iptables将外部stream量redirect到端口22041?

在此先感谢TD

我相信我在另一篇文章中find了自己的答案。 如果我使用physdev来匹配eth1,而不是在桥上匹配,它似乎工作,并不会停止我的正常stream量。

 iptables -t nat -A PREROUTING -m physdev --physdev-in eth1 -p tcp --dport 80 -j REDIRECT --to-port 22041