リモートSSH動的ポート転送(-g)が機能しません。

リモートSSH動的ポート転送(-g)が機能しません。

ホームネットワークの一部のクライアントデバイスをインターネットに接続できるようにしたいが、接続はリモートサーバーへのSSHトンネルを持つiMacを介して行う必要があります。最後に、リモートサーバーからインターネット接続を使用してクライアントデバイスに代わって要求したいと思います。

iMacでトンネリングを使い始めました

ssh -D 8127 -f -g -N -C -vvv myuser@remote_server

プロキシlocalhost:8127を使用してiMacでブラウザを設定しましたが、すべてがうまく機能します。私が接続しているWebサーバーは、Remote_serverから着信接続を確認します。今まではそんなに良くなった。

ただし、クライアントで同じプロキシ設定を構成すると、何も得られません。私のWindowsノートブックのブラウザに「接続リセット」が返されます。 AndroidデバイスとiPadを試してみました。それらのどれも動作しません。

トンネルの詳細な記録は多くを明らかにしません。

debug1: Connection to port 8127 forwarding to socks port 0 requested.
debug2: fd 12 setting TCP_NODELAY
debug3: fd 12 is O_NONBLOCK
debug3: fd 12 is O_NONBLOCK
debug1: channel 5: new [dynamic-tcpip]
debug2: channel 5: pre_dynamic: have 0
debug2: channel 5: pre_dynamic: have 411
debug2: channel 5: zombie
debug2: channel 5: garbage collecting
debug1: channel 5: free: dynamic-tcpip, nchannels 7
debug3: channel 5: status: The following connections are open:
  #2 direct-tcpip: listening port 8127 for 188.65.124.58 port 443, connect from 127.0.0.1 port 61067 to 127.0.0.1 port 8127 (t4 r0 i0/0 o0/0 fd 9/9 cc -1)
  #3 direct-tcpip: listening port 8127 for 172.217.22.206 port 443, connect from 127.0.0.1 port 61091 to 127.0.0.1 port 8127 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)
  #4 direct-tcpip: listening port 8127 for 66.102.1.189 port 443, connect from 127.0.0.1 port 60990 to 127.0.0.1 port 8127 (t4 r2 i0/0 o0/0 fd 11/11 cc -1)
  #6 direct-tcpip: listening port 8127 for 172.217.22.206 port 443, connect from 127.0.0.1 port 61092 to 127.0.0.1 port 8127 (t4 r4 i0/0 o0/0 fd 13/13 cc -1)

なぜこれがうまくいかないのか知っている人はいますか?

ベストアンサー1

localhost ポートにのみバインドします。man ssh文書のこの部分(参考資料を参照)は特に明確ではありません。

デフォルトでは、ローカルポートは設定に従ってバインドされますGatewayPorts。ただし、明示的なバインディングアドレスを使用して特定のアドレスに接続をバインドすることは可能です。 Bind_address はlocalhostリスン ポートがローカル専用であることを示し、空のアドレスはポートがすべてのインターフェイス*で使用可能であることを示します。

そして次からssh_config

ゲートウェイポートリモートホストがローカル転送ポートに接続できるかどうかを指定します。 デフォルトでは、ssh(1)はローカルポート転送をループバックアドレスにバインドします。これは、他のリモートホストが転送されたポートに接続するのを防ぎます。ローカルポート転送をワイルドカードアドレスにバインドして、リモートホストが転送されたポートに接続できるようにGatewayPorts指定するために使用できます。ssh引数は「はい」または「いいえ」でなければなりません。デフォルトは「いいえ」です。

これは、使用時にssh -D 8127バインディングに基づくポートを使用していることを意味しGatewayPorts、デフォルトはlocalhostリモートホストが接続できないことです。

指定すると、ssh -D :8127アドレスへの参照が含まれ、アドレスが空であるため、デフォルトは*リモートホストが接続できることです。

コマンドを次に変更すると、必要に応じて動作します。

ssh -D :8127 -f -g -N -C -vvv myuser@remote_server

おすすめ記事