私は最終的に次のことssh
だけでこれを達成することができました:
- クライアントマシンでローカルSOCKSプロキシを開始します(を使用
ssh -D
)
- リモートサーバーに接続し
ssh -R
、ローカルSOCKSプロキシへのリバースポート転送()を設定します
- 転送されたプロキシを使用するようにサーバーソフトウェアを構成する
1.バックグラウンドでローカルソックスプロキシを起動します
SSH経由でlocalhostに接続し、ポート54321でSOCKSプロキシを開きます。
$ ssh -f -N -D 54321 localhost
-f
バックグラウンドでSSHを実行します。
注:コマンドを開始した端末を閉じると、プロキシプロセスは強制終了されます。また、終了したらターミナルウィンドウを閉じるか、自分でプロセスを強制終了して、自分の後片付けを忘れないでください。
2.リモートサーバーに接続し、リバースポート転送を設定します
リモートポート6666をローカルポート54321にバインドします。これにより、ローカルソックスプロキシがリモートサイトでポート6666で使用可能になります。
$ ssh root@target -R6666:localhost:54321
3.転送されたプロキシを使用するようにサーバーソフトウェアを構成する
yum、apt、curl、wget、またはSOCKSをサポートするその他のツールを設定して、プロキシを使用するだけ127.0.0.1:6666
です。
ほら!ハッピートンネリング!
4.オプション:転送されたプロキシを使用するようにサーバーソフトウェアを構成します
proxychains
ターゲットサーバーにインストールすると、作業がずっと簡単になることがわかりました。
TCPおよびDNS要求を任意のコマンドからプロキシにリダイレクトtelnet
するLD_PRELOAD
トリックを使用することにより、すべてのソフトウェアがSOCKSプロキシを使用できるようにします(偶数)。
/etc/proxychains.conf
転送されたソックスプロキシを使用するためのセットアップ:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
トンネルの任意のツール(TCPを使用)proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update