
Ubuntu サーバーへの SSH トンネルを作成するには、次のコマンドを使用します。
ssh -fNg -L 8888:127.0.0.1:22 -p 1000 username@server-address -v
次に、OSXのhttpとhttpsプロキシを127.0.0.1:8888に設定します。
そして、次のエラーが発生しました:
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
プロトコルが一致しません。
問題は何ですか?どうすれば解決できますか?
答え1
-L 8888:localhost:22 は、ローカル ポート 8888 を ssh サーバーのポート 22 に転送します。squid サーバーまたは別のプロキシが実行されていない限り、機能しません。
SSH は socks プロキシを提供できます。これを使用して、ssh トンネルを介してブラウズできます。
ssh -fNg -D 8888 -p 1000 username@server-address -v
接続後にプロキシを設定するだけです:
localhost:8888
答え2
「Ubuntu サーバーへの SSH トンネルを作成するには、次のコマンドを使用します:
ssh -fNg -L 8888:127.0.0.1:22 -p 1000 ユーザー名@サーバーアドレス -v
OK、ポート1000にSSHサーバーが必要です
OK、クライアント プログラムはポート 8888 に接続し、そこに送信されるものはすべてポート 22 に転送されます (22 は ssh で一般的に使用されるポートです)。
ssh 内で ssh をトンネルしようとしているのであれば、それは意味があるかもしれませんが、すぐにはそれが必要なのか思いつきません。
次に、OSX httpおよびhttpsプロキシを127.0.0.1:8888に設定しました。
いいえ、すでに SSH がポート 8888 をリッスンするポートを開いています。そのポートで別のものをリッスンさせることはできません。
宛先マシン(サーバーアドレス)のポート22にhttp[s]プロキシを配置し、Webブラウザをプロキシ127.0.0.1:8888を使用するように構成すると、Webブラウザはポート8888に接続でき、宛先マシンのポート22のhttpプロキシに転送されます。これを行うと、宛先マシンのポート22で-L 8888:127.0.0.1:22
リッスンする何かが必要になります。また、22を8080などのより適切なものに変更することもできます。テストしていませんが、機能すると思います。
あるいは、SSH には -D オプションもあります。これは HTTP[s] を実行できる SOCKS プロキシとして機能しますが、Web ブラウザに通常の HTTPS ではなく SOCKS プロキシに接続するように指示します。つまり、David が言ったように、ssh -fNg -D 8888 -p 1000 username@server-address -v
-fNg と -v は当然必須ではありません。