web-dev-qa-db-ja.com

iptablesはすべてのトラフィックをインターフェイスに転送します

2つのインターフェースeth1eth0があります。 eth0のすべてのトラフィックをeth1に転送したい。次のようなiptableルールを作成しました。

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

しかし、これは機能しません。これはこれを行う正しい方法ですか?

14
user110

カーネルで転送をまだ有効にしていない場合は、有効にします。

  • /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チェーンを使用する代わりに、どのインターフェースが着信/発信であるかを指定するルールをそのチェーンに作成する必要があります。

22
Creek