Linux CentOS で iptables を使用して IP トラフィックを新しい IP にリダイレクトできない

Linux CentOS で iptables を使用して IP トラフィックを新しい IP にリダイレクトできない

今日、いくつかのゲーム サーバーを別のサーバーに移行することができ、古い IP から新しい IP にトラフィックをリダイレクトするのに助けが必要でした。

SERVER1 1.1.1.1 ----- (インターネット) -----> SERVER 2.2.2.2

これを実行するには iptables を使用すると思います。そのために、server1 の CentOS ボックスでこのルールを使用しました。

/etc/sysctl.conf: net.ipv4.ip_forward = 1

iptables -t nat -A PREROUTING -p udp --dest 1.1.1.1 --dport 27015 -j DNAT --to-destination 2.2.2.2:27015
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -d 2.2.2.2 -p udp --dport 27015 -j SNAT --to 1.1.1.1

しかし、クライアントは古い IP からサーバーに接続できず、リダイレクトは開始されません。

答え1

次のようなことができます:

iptables -t nat -A OUTPUT -p all -d 1.1.1.1 -j DNAT --to-destination 2.2.2.2 
iptables -t nat -A POSTROUTING -p all -j MASQUERADE

答え2

このサーバーで以前に NAT が設定されていなかった場合、カーネルが IPv4 トラフィックを通過させるように設定されていない可能性があります。

以下の内容を確認してください/etc/sysctl.conf:

net.ipv4.ip_forward = 1

関連情報