他のサーバーを介してポートを転送する方法

他のサーバーを介してポートを転送する方法

友達と一緒にプレイする小さなゲームサーバーを設定したいのですが、VPSの料金を支払いましたが、ゲームサーバーを実行するハードウェアはありません。私のコンピュータはサーバーを実行できますが、外部インターネットから自分のコンピュータにポートを開くことは実際には私にはオプションではありません。

したがって、私にとって最も理想的な方法は、私のコンピュータのポートを私のvpsを介して転送することです。しかし、私はネットワーキングの知識が全くなく、オンラインで見つけた情報が私にとってとても混乱しています。

私が知っているのはSSHで可能ですか?

私はこの人が同様のことをするのを見ました。 あるシステムから別のシステムにポートを転送する方法は?

しかし、私はこの質問に対する答えが少し混乱しています。次のように言及されています。

ssh -L 2222:localhost:8888 -N -o GatewayPorts=yes hostname-of-M

質問では、Mはホストでなければならず、Sはトラフィックをルーティングする必要があるシステムサーバーです。この人は「Mの代わりにlocalhostを使用できます」と答えましたが、これはMマシンでこのコマンドを実行する必要があると思います。

しかし、Mがローカルホストの場合、このコマンドで実際にSに接続する場所はどこですか?

「hostname-of-M」の代わりに私のvpsのIPを試してみましたが、あまり効果がないようです。

これが今私の状況です。 SSHを介して可能でなければならないと思いますか?しかし、私はこれについて完全に確信していませんか?このssh機能は、MのIPがSで表示されている場合にのみ可能です。では、Sでsshコマンドを実行する必要がありますか?このコマンドが正確に何をすべきかは非常に混乱しています。それでは…私は正しい方向に向かっていますが、一歩を踏み出しましたか?それともまったく異なるアプローチが必要ですか?

答え1

私はあなたも試してみることを望む一つのことを試しました。パブリックIPを使用してVPSにOpenVPNサーバーをインストールし、ローカルコンピュータをVPNサーバーに接続しました。この場合

VPS パブリック IP: xxxx
VPS 内部 Openvpn トンネル IP: 10.8.0.1
ローカル Openvpn トンネル IP: 10.8.0.2

python3 -m http.server怒るローカルマシンポートにhttpサーバーを提供するサーバーは何ですか8000

存在するVPSサーバー走ってブーム!したがって、これからポート8080に到着するすべての要求は、私のローカルコンピュータのポート8000​​に転送されます。ssh -L 8080:10.8.0.2:8000 -N -o GatewayPorts=yes [email protected]

VPSパブリックIPを使用してインターネットからローカルコンピュータに接続できます。x.x.x.x:8080

答え2

私の答えがトピックと異なる場合は申し訳ありません。しかし、あなたの目標は家庭用コンピュータをインターネットに公開することであるため、本当にVPS経由で配信する必要があるかどうか疑問に思います。

外部サービスを介してこれを実行することも実行可能なオプションである場合は試してみてください。応援代わりに - 使い方は本当に簡単です。バイナリをダウンロードして./ngrok [protocol] [port_number]を実行すると、[hash].ngrok.ioなどのサーバーURLが取得され、友達と共有できます(少なくともStack Overflowの一部の人々はMinecraftをそのようにプレイしているようです。)

ただし、米国のサーバーの場所はあなたとあなたの友人にとって最も理想的ではないかもしれません(そして最悪の場合は待ち時間に敏感な場合はゲームをプレイできないかもしれません)。または、サーバーが使用する最も近いサーバーの場所を選択してみることもできます。上記のSOリンクで説明されているように-regionオプション(確認文書詳細な地域リストを取得する)

関連情報