我有两个接口eth1
和eth0
.我希望所有流量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 链。