ssh -D
はローカルマシンにソックスポートを作ることができ、リモートへのトラフィックを他の場所に渡します
ssh -L port:host:hostport
、ローカルマシンでポートをリッスンし、リモートマシンから見て “host:hostport “にトラフィックを渡す
ssh -R port:host:hostport
はssh -L
の対になるもので、リモートマシンのポートをリッスンし、ローカルマシンから見て “host:hostport “にトラフィックを渡します
しかし、ssh -D
の対極にあるもの、つまり、リモートマシンでソックスポートを開いて、ローカルにトラフィックを渡し、他の場所に転送する方法は何でしょうか?
31 Berry 2011-12-23
-D
& -L
では、2つのマシン間でどちらかの方法で通信することができます
So…
- ローカルマシンから、
-R
を使用して、ローカルマシンの sshd を指すリモートマシン上にリスニングポートを作成します - 上記で作成したポートを指すリモートマシンで
-D
を使用します
下に記入すると「思う」のですが・・・
ssh remotehost -R remoteport:localhost:localport "ssh -D 9050 localhost -p remoteport"
上記の’remotehost
‘、’remoteport
‘ & ‘localport
‘は変更が必要です。9050でソックスプロキシが形成されます
13 Pricey 2011-12-23
このスニペットは ~/.ssh/config で透過的に実現できます
Host sockstunnel
ProxyCommand ssh -D 3128 localhost nc -q 1 localhost 22
Host target
RemoteForward 3128 localhost:3128
ProxyCommand ssh -W target:22 sockstunnel
Details
ここでは、DynamicForward を逆にしたいと思います。これは2つのsshコマンドを使って実現します
ssh -D 3128 localhost
ssh -R 3128:localhost:3128 target
このようにtargetはSSHクライアントへのSOCKSトンネルを持っています
私がしたことは、中間ホストを介してリモートターゲットに到達するために ssh をチェーンする古典的な方法を使用して、ターゲットにログインしている間に SOCKS トンネルの作成が透過的に処理されるようにすることです。最初の ProxyCommand + nc のトリックは、-W は ClearAllForwardings を意味するので必須です
18 user305311 2014-03-05
local$ ssh -R 1080 remote
remote$ curl --socks5 localhost https://example.com
OpenSSH 7.6 以降
ssh(1): リバースダイナミック転送のサポートを追加。このモードでは、ssh は SOCKS4/5 のプロキシとして動作し、リモートの SOCKS クライアントが要求した目的地への接続を転送します。このモードは、-R および RemoteForward オプションの拡張構文を使用して要求され、クライアントのみで実装されているため、 サポートされるようにサーバを更新する必要はありません
7 zmx 2019-05-09
OpenSSH で逆ソックストンネルを提供する機能はありませんので、”リモート” マシン上でソックスプロキシを提供する ssh コマンドを実行しなければなりません
リモートマシンがローカルマシンに ssh できない場合、最初にローカルからリモートへの ssh 接続を作成して、ポート 22 を例えば 2222 に転送します。これで、リモートマシンはポート 2222 でローカルマシンに ssh できるようになります
3 Thorbjørn Ravn Andersen 2011-12-23
新しいバージョンの OpenSSH は逆動的 TCP 転送をネイティブにサポートしています。(現在の) マニュアルの -R
オプションから
明示的な宛先 [指定されていない] 場合、ssh は SOCKS 4/5 プロキシとして動作し、リモート SOCKS クライアントが要求した宛先に接続を転送します
That’s it!
0 EnzoR 2020-04-03