web-dev-qa-db-ja.com

SSHトンネリングを介してリモートサーバーでプロキシを使用可能にする

Sshトンネリングを使用して、マシン上に「プロキシ」を作成し、ローカルで生成されたすべてのトラフィックをリモートサーバーを通過させることができることを知っています。このような:

$ ssh -D 12345 myuser@remote_ssh_server

しかし、リモートサーバーに「プロキシ」を作成して、送信するすべてのトラフィックがローカルマシンを経由するようにする必要がある場合はどうでしょうか。これはsshで可能ですか?

サーバーはインターネットに直接アクセスできないため、基本的に、ローカルインターネット接続をいくつかの特定のコマンドとともに使用してリモートで実行したいと思います。

5
Filipe Correia

これを行う最も簡単な方法は、一度に1つのポートとホストです。たとえば、リモート:8001からイントラサーバー:80にトラフィックを転送するには、

ssh -R 8001:intraserver:80 myuser@remote

ただし、リモートからすべてのトラフィックを転送したい場合、ローカルホストでSSHサーバーを実行していると、

ssh -R 2200:localhost:22 myuser@remote ssh -D 10800 -p 2200 localhost

それを解く:

  • -R 2200:localhost:22 remote:2200からlocalhost:22への転送を設定します。
  • ssh -p 2200 localhostリモートでsshを実行し、remote:2200に接続して、localhost:22に戻します(最初のssh接続を介してトンネリングされます)。
  • -D 10800リモートからローカルホストへの接続を介して、remote:10800からSOCKSをトンネルします。
5
Andrew Schulman