OpenVpnを介したポート転送

OpenVpnを介したポート転送

友達とプレイするためにホームネットワークでゲームサーバーをホストしたかったのですが、パブリック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より詳細な説明が必要です。

関連情報