2つのインターフェースeth1
とeth0
があります。 eth0
のすべてのトラフィックをeth1
に転送したい。次のようなiptableルールを作成しました。
iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT
しかし、これは機能しません。これはこれを行う正しい方法ですか?
カーネルで転送をまだ有効にしていない場合は、有効にします。
/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チェーンを使用する代わりに、どのインターフェースが着信/発信であるかを指定するルールをそのチェーンに作成する必要があります。