私のサーバーをsshの「プロキシ」として使用しようとしています。ただし、でトンネリングを設定する
ssh -D localhost:8000 user@myserver
動作しません。
SshとPuTTYを使用してさまざまなマシンでこれをテストしました-正常に接続しますが、ブラウザの設定を適切に設定すると、「接続がリセットされました」というエラーが表示されます。 Wiresharkでトラフィックを監視しようとしましたが、トンネルトラフィックも確認できませんでした。 AllowTcpForwarding
を明示的に "yes"に設定しましたが、それでもトンネルを使用できません。
Sshを冗長モードで実行すると、エラーは発生しませんが、
debug1: Connection to port 8000 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
debug1: channel 3: free: dynamic-tcpip, nchannels 4
何が悪いのですか?
古いスレッドですが、可能な解決策を投稿する価値はあると思います。
複数のブラウザで同じ問題が発生しましたが、構成の問題であることが判明しました。その場合、次のコマンドが機能し、リモートマシンのIPアドレスが表示されます。
links -socks-proxy localhost:8000 www.myipaddress.com
質問に対する最初のコメントは、ブラウザがSOCKSプロキシの代わりにHTTPプロキシを使用しようとする可能性があるという点で正しいです。その場合、OPの投稿とまったく同じssh
からの出力が表示されます。そして、私はSOCKSプロキシを設定しましたが、問題はHTTPプロキシの設定を解除しなかったでした。それが完了すると、すべてが期待どおりに機能し始めました。
正しいコマンドは次のとおりです。
ssh user@server -D 8000
それでも接続できない場合は、別のプロセスがこのポートを使用しているかどうかを確認してください。これを行う最も簡単な方法は次のとおりです。
netstat --listen |grep 8000
その場合は、別のポートを使用してください。
同じ問題がありましたが、私の修正はコマンドに-g
オプションを追加することです:
$ ssh -D 12324 localhost:8000 user@myserver -g
sshd_config
sshサーバー:
PermitTunnel yes
そしてもちろん:
service ssh restart