iptables 将所有流量转发到接口

iptables 将所有流量转发到接口

我有两个接口eth1eth0.我希望所有流量eth0都转发到eth1.我创建了一个像这样的 iptable 规则:

iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT

但这行不通。这是这样做的正确方法吗?

答案1

如果您尚未在内核中启用转发,请执行此操作。

  • 打开/etc/sysctl.conf并取消注释net.ipv4.ip_forward = 1

  • 然后执行$ sudo sysctl -p

添加以下规则iptables

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

所有转发的流量都将遍历 FORWARD 链。要过滤数据包,您现在必须在该链上创建规则,指定传入/传出的接口,而不是使用 INPUT/OUTPUT 链。

相关内容