3 番目のパブリック IP コンピューターを介した 2 つの NAT 背後のコンピューター間の SSH 接続

3 番目のパブリック IP コンピューターを介した 2 つの NAT 背後のコンピューター間の SSH 接続

家にはパソコンがあります(ホームサーバー) で、irssi、rtorrent などを実行しています。私の ISP は外部からのすべてのトラフィックをブロックしています (愚かなことだとはわかっていますが、私が利用できる ISP は他にありません)。

ログインできるようにしたいホームサーバーのシェルからリモートコンピュータ(NAT の背後)。

どこかにシェル アカウント (ルート アクセスなし) があるので、それが役に立つかもしれません。

状況を説明する図は次のとおりです。 ここに画像の説明を入力してください

これで私のシェルにアクセスできるようになるのでしょうか?ホームサーバー? SSH トンネリングについて何か聞いたことがありますが、このケースに一致するチュートリアルは見つかりませんでした。

答え1

ホームサーバー(サードパーティからホームへのトンネル):
ssh -R 20000:127.0.0.1:22 thirdparty.org

これにより、ホーム ボックスがサード パーティ シェルに接続され、サード パーティ シェルのポート 20000 へのすべての接続がホーム ボックスのポート 22 (SSH ポート) に転送されるようになります。

リモート コンピューター (リモートからサード パーティへのトンネル):
ssh -L 20000:127.0.0.1:20000 thirdparty.org

これにより、リモート ボックスがサード パーティ シェルに接続され、リモート ボックスのポート 20000 がサード パーティ シェルのポート 20000 に転送され始めます。

そしてリモートコンピュータで(トンネル経由で接続):
ssh 127.0.0.1:20000ホームサーバーの資格情報を入力します

これにより、リモート ボックスのポート 20000 に SSH 接続が試行されます。サード パーティへのトンネルを設定したので、#2 コマンドは、この接続試行をサード パーティ シェルの 127.0.0.1:20000 に効果的に転送します。次に、最初のコマンドが接続をホーム ボックスのポート 22 に再度転送し、この時点で SSH サーバーが接続を取得します。

答え2

以下に、受け入れられている解決策を詳しく説明します。「マシン A」と「マシン B」の両方が NAT ファイアウォールの背後にあると仮定します。両方ともリモートの「マシン R」(VPS など) への SSH アクセス権を持っています。

R -> A

ssh -R 20000:127.0.0.1:22 user@RemoteHost
  1. 上記のコマンドはマシン上で実行されました

  2. トンネルを作成するRRのポート20000) にAのポート22)(逆トンネリング)

B -> R

ssh -L 8000:127.0.0.1:20000 user@RemoteHost
  1. 上記のコマンドは、B

  2. トンネルを作成しますBBのポート8000) にRRのポート20000

B -> A

ssh 127.0.0.1 -p 8000

実際の接続は行われているR、 あれはB(ポート8000​​)-> R(ポート20000)-> あ(ポート22)


PuTTY と Windows を使用した場合も同様です:

R -> A

putty.exe -R 20000:127.0.0.1:22 -ssh RemoteHost -P port -l user -pw password

B -> R

putty.exe -L 8000:127.0.0.1:20000  -ssh RemoteHost -P port -l user -pw password

B -> A

putty.exe -ssh 127.0.0.1 -P 8000 -l user -pw password

答え3

または、HE.net で IPv6 トンネルをいくつか設定して直接接続することもできます... (多くの VPN ソリューションも同様に機能します。)

答え4

無償ですが、一部の人の役に立つかもしれません。上記を補足する写真を追加します。

ここに画像の説明を入力してください

関連情報