ホームネットワークの一部のクライアントデバイスをインターネットに接続できるようにしたいが、接続はリモートサーバーへの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