web-dev-qa-db-ja.com

SSHを介してトラフィックをトンネリングするローカルSOCKSプロキシを設定するにはどうすればよいですか?

トンネリングをサポートするSSHサーバーにアクセスでき、* ubuntuを実行しているPCを使用している場合、インターネットに到達する前にそのSSHサーバーを介してトラフィックをトンネリングするローカルSOCKSプロキシを設定するにはどうすればよいですか?

29
pzkpfw

Sshを実行しているサーバーに接続するときに使用するsshバイナリは、-Dフラグを使用してSOCKSプロキシをすぐに実行できます。例:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337sshに、ポート1337でSOCKSサーバーをローカルで起動するように指示します。
  • -fは、プロセスをバックグラウンドにフォークします。
  • -C圧縮をオンにします。
  • -qは「Quietモード」を有効にします。ここでの目的はトンネルであり、エラー出力などはあまり気にしないからです。
  • -Nは、コマンドが送信されないことをsshに伝えます(-fこれを指定しないと文句を言います)。
  • -pは、使用するポートを指定します。明らかにこれは22にデフォルト設定されているため、上記のステートメントは無意味ですが、明確にするために含まれています。

SOCKSサーバーが稼働している場合、アプリケーション(通常はWebブラウザー)が通常のインターネットではなくローカルSOCKSプロキシに接続しようとしていることを確認するだけです。

Firefox 29(ここでは例として説明します)では、メニュー(右上の3つのソーセージ)に移動し、[設定]> [詳細設定]> [ネットワーク]>(接続)> [設定...]に移動します。 SOCKSフィールドに入力してください!プロキシは同じシステム上にあるため、localhostまたは127.0.0.1を使用して、同じシステムで設定したポートを指すことができます。

DNSリクエストもトンネリングする必要がある場合(そうでない場合、DNSルックアップはアクセスしようとしているWebサイトを明らかにします)、「リモートDNS」で確認するか、about:config。最後のケースでは、それを開いてこれらの値を設定します:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

特定のドメインまたはサイトをトンネリングから除外するには、この設定が必要になる場合があります。

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

この回答はフランスから書かれましたが、スウェーデン経由でトンネルされました:)

44
pzkpfw