私はこの規則をうまく使いました。
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
ローカル10.0.2.0サブネットのNATトラフィックをインターネット(eno1のリモート側)に転送します。
より遠い192.168.3.0サブネットからのトラフィック(192.168.3ネットワーク上のルーターを介して送信されます)は、このLinuxルーターを介してインターネットに行く間はNATを通過しません。代わりに、発信パケットは192.168.3.xアドレスを保持するため、インターネットサーバーから応答を受信できません。
MASQUERADEルールを次のように置き換えます。
iptables -t nat -A POSTROUTING -o eno1 -j SNAT --to 1.2.3.4
(ここでは1.2.3.4はeno1のLinuxルーターのインターネットアドレスです。)問題が解決されました。
iptables MASQUERADEは、ここのようにLinuxルーターのローカルネットワークからの着信パケットのみを書き換える必要がありますか?それとも別の説明がありますか?
ベストアンサー1
興味深いからman iptables-extensions
。
マスカレーディングは、パケットが開始されたインターフェイスのIPアドレスへのマッピングを指定するのと同じですが、インターフェイスがダウンした場合に接続を忘れることもあります。
したがって、インターフェイスからをインポートした場合、MASQUERADE
これら2つのwrtの違いがわかるという事実に驚きました。転送されたパケット。SNAT
--to
私は私のコンピュータのネットワークネームスペースからパケットを転送するためにも使いましたが、それはうまくMASQUERADE
いきます。
だから私の最初の考えはあなたが別の効果を見ているということです。実際に違いを引き起こすことが違うのではなく、別のルールであるかどうかを再確認します。