パブリックで利用可能なサーバーからプライベートで使用可能なコンピュータにトラフィックを転送する方法は?

パブリックで利用可能なサーバーからプライベートで使用可能なコンピュータにトラフィックを転送する方法は?

私の家のコンピュータはISPレベルのNATの背後にあるので、ゲームサーバーをホストすることはできません。

Webサーバーとして使用するVPSがあります。 Minecraftゲームサーバーをホストしたいのですが、VPSは十分に強力ではありません。

マイコンピュータとVPSの両方がLinuxを実行します。マイコンピュータはマイサーバーに接続できますが、サーバーはマイコンピュータへの接続を開くことができません。

私が達成したいことは次のとおりです

  • 一部のユーザーは私のサーバーのポート27015に接続します。
  • その後、サーバーは、マイホームコンピューターに開いている接続の1つを介してサーバーのポート27015からマイホームコンピューターのポート27015にすべてのトラフィックを転送します。

SSHはこれを行うことができますか?反対の効果があるかもしれないことを知っています。それ以外の場合は、これを実行できる他のプログラムはありますか?

答え1

短い答え:はい、SSHこれは可能です。答えは「逆方向」トンネリングという質問にあります。より-アル字型オプションSSH顧客:

-R [バインドアドレス:]ポート:ホスト:ホストポート
与えられたものを指定するポートリモート(サーバー)から所有者ローカル側の指定されたホストとポートに転送されます。これは、リスニングするソケットを割り当てることによって行われます。ポートリモート側では、このポートに接続するたびにセキュアチャネルを介して接続が転送され、ホストポートに接続されます。ホストポートローカルマシンで。

常に役立つ記事をもっと読んでください。偽造する方法リバースSSHトンネル) しかし、基本原則はSSHプライベートホストからパブリックホストに再マップするポートを指定します。コマンドでバインディングアドレスを設定する必要があります。それ以外の場合、デフォルトではローカルループにバインドされます。

答え2

あるいは、netcatを使用してこれを行うこともできます。

http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping

Netcatは持つ価値があります。あなたはそれであらゆる種類の面白いことをすることができます。

関連情報