iptables bridge redirect 也会重定向其他接口

iptables bridge redirect 也会重定向其他接口

运行 Ubuntu 14.04LTS 家庭服务器。我有一台小型 IOT 设备,它将 HTTP 帖子发送到远程 Web 服务器,我想将其重定向到本地进程(基本上是拦截它发送到我自己的本地进程的帖子)。服务器使用 eth0(内置以太网端口),IOT 设备位于 eth1 上,这是一个 USB 以太网适配器。我在 /etc/network/interfaces 中创建了一个桥接

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

我使用以下 iptables 规则将桥接流量重定向到本地端口 22041。效果很好。

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

问题是,当 LAN 上的任何设备尝试访问网页时,它似乎还会将端口 80 流量重定向到服务器。如果我运行“firefoxhttp://127.0.0.1/页' 从服务器运行,一切正常。如果我从 LAN 上的另一台机器运行“firefox httpt://server_ip/page”,它会被重定向到端口 22041。

我以为“-i br0”只会将此规则应用于来自网桥的流量,但显然情况并非如此。如何阻止 iptables 将外部流量重定向到端口 22041?

提前致谢,TD

答案1

我相信我在另一篇文章中找到了我自己的答案。如果我使用 physdev 来匹配 eth1,而不是在桥上匹配,它似乎可以工作并且不会阻止我的常规流量。

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

相关内容