リバースSSHトンネルを介してSOCKSを実行するには?

リバースSSHトンネルを介してSOCKSを実行するには?

私は2つのことをしましたが、3番目のことをしたいと思います。動的IPを持つリモートRaspberry Pi(Raspbian実行)をサーフィン用SOCKSプロキシとして使用したいと思います。ただし、このRpiはリバーストンネルを介してのみアクセスできます。

だから私は持っています:

  • マイローカルデスクトップ(動的IPの背後)
  • 他の国のRaspberry Pi(動的IPの背後にある)
  • 固定IPを使用する専用サーバー

私はこれらのコンピュータのすべての権限を持っていますが、ローカルデスクトップとリモートRaspberry Piの前にあるルータは制御できません。

以下はうまくいきます。

ssh -D 5222 [email protected] -N [email protected]

これにより、IP aaa.bbb.ccc.dddのサーバーでサーフィンするのと同じように、FirefoxまたはChromiumを使用してサーフィンできます。 (私がしなければならないのは、ポート5222でlocalhostを使用するようにSOCKSを設定することだけです。)

次もうまくいきます。

ssh -t [email protected] "ssh rspi@localhost -p 32402"

Raspberry Piはautossh常に静的IPを使用してサーバーのリバーストンネルを設定します(この場合はポート32402にあることを知っています。ポートが変更された場合は使用しているポートを知らせるため問題ありません)。

したがって、「デュアルSSHコマンド」を使用すると、ローカルデスクトップの端末でRapsberry Piを制御し、静的IPを持つサーバーを介して送信できます。

今まではそんなに良くなった。今、私はこれらの2つがうまく動作することを知っているので、リモートRaspberry PiをSOCKSプロキシとして使用してサーフィンできるようにする魔法が何であるか疑問に思います。 (私はRaspberry PiがリバースSSHトンネルを確立するポートを常に知っていることを覚えておいてください。)

リモートRaspberry Piまたは専用サーバーで修正/構成を実行する必要がありますか、ローカルデスクトップで正しく設定する必要がありますか?

ベストアンサー1

desktop$ ssh -J [email protected] -D 5222 -p 32402 rspi@localhost

まあ、それは本当に必要なすべてです。

sshコマンドを実行するには古すぎる場合は、上記の行を次の2つの-Jコマンドに置き換えることができます(両方の端末で、または最初のコマンドを-f -Nバックグラウンドに置くなどのオプションを使用して)。

desktop$ ssh -L 32402:localhost:32402 [email protected]
desktop$ ssh -D 5222 -p 32402 rspi@localhost

この-Jオプションは、2番目の以前の方法で最初のコマンドを実行しないショートカットです。

おすすめ記事