友達とプレイするためにホームネットワークでゲームサーバーをホストしたかったのですが、パブリックIPを使用することはDDoS攻撃を頼むのと同じでした.です。 .113.x.私のホームサーバーのパブリックIPは143.12.44.xです。
私はOpenVPNを介してvpsからホームサーバーにトラフィックを転送するために、次のiptablesルールを使用します。
IVSS 7730
iptables -t nat -A プリルーティング -d 98.158.113.x -p udp --dport 7730 -j DNAT --to-dest 10.8.0.2:7730 iptables -t nat -A ポストルーティング -d 10.8.0.2 -p udp - -dport 7730 -j SNAT -ソース10.8.0.1
10.8.0.1はOpenVPNゲートウェイで、10.8.0.2は私のホームサーバーがOpenVPNサーバーから取得するIPだと思います。
ここでの問題は、誰かがサーバーに接続すると、彼のIPが実際のIPではなく10.8.0.1としてリストされることです。
この問題を解決する方法はありますか?
答え1
ゲームサーバーがLinuxを実行している場合はそうです。
SNATルールを削除する必要がありますが、残念ながらこれを行うと別の問題が発生し、VPNからVPNを介してトラフィックを再度強制することはできません。
この問題を解決するには、ゲームサーバーでポリシールーティングを使用できます。私はおおよそ次のように設定したと思います。 (しかし、これはテストされた例ではなく、メモリからのものです。)
まず、/etc/iproute2/rt_tablesに "100 openvpn"エントリを追加して名前付きパステーブルを作成します。
その後、ゲームサーバーのVPN IPアドレスから新しいルーティングテーブルにすべてのトラフィックを送信するルールを追加できます。
ip rule add from 10.8.0.2 table openvpn
そして、新しいルーティングテーブルにパスを追加して、すべてをopenvpnサーバーに送り返します。
ip route add default dev tun0 table openvpn
(openvpn トンネルが tun0 であると仮定)
バラよりhttps://lartc.org/howto/lartc.rpdb.multiple-links.htmlより詳細な説明が必要です。