iptables将所有流量转发到接口


14

我有两个接口eth1eth0。我希望所有流量eth0都转发到eth1。我创建了一个iptable规则,如下所示:

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

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

Answers:


22

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

  • 打开/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链。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.