web-dev-qa-db-ja.com

HTTPリクエストをSOCKS5に変換する

私は現在、TORでいくつかのテスト作業を行っており、小さな問題に遭遇しました。 TorのクライアントはSOCKS5プロトコルを介した接続の受信のみをサポートしていますが、使用しているアプリケーションはHTTPプロキシプロトコルのみをサポートしています。

真ん中に何かを入れることは可能ですか?だからそれは例えば行きました。

私のプログラム(HTTPのみ)> HTTP to SOCKSコンバーター> Tor SOCKS5サーバー

48
Dustin

次のような DeleGate がこれを実行できるように見えます(DeleGateはポート8080でHTTP接続を受け入れ、ポート9050でSOCKSサーバーに転送します):

delegated -P8080 SERVER=http SOCKS=localhost:9050
44
mgorven

Torバンドルにはもはやpolipoがありません。これは 公式tor FAQ からのものです:

以前は、TorバンドルにはPrivoxyやPolipoのようなHTTPプロキシが含まれていましたが、Firefox 6で最終的に修正されたFirefoxのバグを回避するためだけになりました。 TorbuttonはFirefoxのWebサイトとのやり取りをより適切に制御できるため、outはあなたをより安全にします。

Torでいくつかの外部アプリケーションを使用しようとしている場合、ステップ0は、一連の警告を読み直して失敗する可能性があることです。ステップ1は、httpプロキシではなくSocksプロキシを使用することです。Torは、Windowsではポート9050でSocksプロキシを実行します。OSXおよびLinuxでは 上記を参照 を実行します。

それが失敗した場合は、自由にインストールしてください privoxy 。ただし、この方法は初心者にはお勧めしません。 Privoxyの設定例は Tor and Privoxy です。

9
Stefan Rogin

Privoxy を使用することもできます。次の行をconfig.txtファイルに追加します。

forward-socks5 / 127.0.0.1:9050 .

(最後の小さなドットを忘れないでください。)

次に、127.0.0.1:8118でHTTPまたはHTTPSプロキシを使用します

9
Guest

オペレーティングシステムを指定していません。今後もどうぞ。


この回答はPolipoを推奨しています。Polipoは、TorプロジェクトがホストするVidaliaバンドルに含まれているため、おそらくWindows向けに推奨されています。 Polipoには* nixバージョンもあります(元々は* nix用に設計されていた)ので、その設定方法の手順を含めました。以下の2番目のセクションを参照してください。それが重要であれば、それはかなり軽量なソリューションです。


ウィンドウズ

Vidaliaバンドルをダウンロードします。 これには、Vidalia GUIとPolipoと呼ばれるプログラム、およびTorが含まれています。バンドルでは、Polipoはデフォルトでポート8118でHTTPプロキシを実行し、ポート9050のTor SOCKSプロキシを介してリダイレクトします。

詳細設定

Vidaliaバンドルなしで、Polipoを手動で構成することもできます。

http://www.pps.jussieu.fr/~jch/software/polipo/tor.html から取得

また、ダウンロードする必要があるバイナリも提供します。

構成

Polipoは、Polipoの構成ファイル(プレーンテキストファイル)にいくつかの構成変数を設定することによって構成されます。 Polipoにtorを使用し、フェッチしたページをディスクにキャッシュしないように指示するには、構成ファイルに次の行を追加します。

socksParentProxy = localhost:9050
diskCacheRoot=""

ブラウザの脆弱性から身を守るために、ローカル設定インターフェースを無効にすることもできます。

disableLocalInterface=true

それを実行する

Polipoを実行するときは、Polipoのコマンドラインで-cフラグを使用して、構成ファイルの場所を指定する必要があります。

> polipo.exe -c "/Program Files/Polipo/config.txt"

Windowsでもファイル名にはUnix構文を使用する必要があり(スラッシュを使用)、使用するデバイス(「ドライブ」)を指定できないことに注意してください。

Polipoのデフォルトのリスニングポートは8123です。

Vidaliaバンドルのデフォルト設定は、この回答の下部に含まれています。


* nix

Linux、Unix、BSD、OS X、NT(Windows)ベースではない最新の主要な(2012)オペレーティングシステムが含まれます。

もう一度、 http://www.pps.jussieu.fr/~jch/software/polipo/tor.html から取得

使用しているリポジトリからパッケージをダウンロードします。ここでGoogleが役立ちます。または、直接バイナリをダウンロードすることもできます。

構成

Polipoは、Polipoの構成ファイルにいくつかの構成変数を設定することによって構成されます。これは、~/.polipoまたは/etc/polipo/configのいずれかが存在する方です。 Polipoにtorを使用し、フェッチしたページをディスクにキャッシュしないように指示するには、構成ファイルに次の行を追加します。

socksParentProxy = localhost:9050
diskCacheRoot=""

ブラウザの脆弱性から身を守るために、ローカル設定インターフェースを無効にすることもできます。

disableLocalInterface=true

構成ファイルに別の場所を指定する場合は、Polipoのコマンドラインで-cフラグを使用して指定できます。

ディストリビューション提供のバイナリからPolipoをインストールした場合、おそらく〜/ .polipoは考慮されないことに注意してください—/etc/polipo/configを編集する必要があります

それを実行する

ディストリビューション提供のパッケージからPolipoをインストールした場合、Polipoはおそらくすでに実行されています。新しい構成を考慮に入れるために再起動する必要があります。それ以外の場合は、空いているターミナルウィンドウを取得して次のように入力します。

$ polipo

Polipoの構成ファイルに標準以外の場所を使用している場合は、コマンドラインで次のように指定します。

$ polipo -c "/Program Files/Polipo/config.txt"

Polipoのデフォルトのリスニングポートは8123です。

Vidaliaバンドルのデフォルト設定は、この回答の下部に含まれています。


デフォルトのPolipo構成(Vidaliaバンドル)

これは、WindowsのVidaliaバンドルからのデフォルトのPolipo構成です。それを見ると、* nixでも動作するはずです。私が知る限り、プラットフォーム固有のものはありません。はい、それはIPv4構成です。

### $Id$
#
### Basic configuration
### *******************

# Uncomment one of these if you want to allow remote clients to
# connect:

# proxyAddress = "::0"        # both IPv4 and IPv6
# proxyAddress = "0.0.0.0"    # IPv4 only

proxyAddress = "127.0.0.1"
proxyPort = 8118

# If you do that, you'll want to restrict the set of hosts allowed to
# connect:

# allowedClients = "127.0.0.1, 134.157.168.57"
# allowedClients = "127.0.0.1, 134.157.168.0/24"

allowedClients = 127.0.0.1
allowedPorts = 1-65535

# Uncomment this if you want your Polipo to identify itself by
# something else than the Host name:

proxyName = "localhost"

# Uncomment this if there's only one user using this instance of Polipo:

cacheIsShared = false

# Uncomment this if you want to use a parent proxy:

# parentProxy = "squid.example.org:3128"

# Uncomment this if you want to use a parent SOCKS proxy:

socksParentProxy = "localhost:9050"
socksProxyType = socks5


### Memory
### ******

# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):

# chunkHighMark = 819200
# objectHighMark = 128

# Uncomment this if you've got plenty of memory:

# chunkHighMark = 50331648
# objectHighMark = 16384

chunkHighMark = 33554432

### On-disk data
### ************

# Uncomment this if you want to disable the on-disk cache:

diskCacheRoot = ""

# Uncomment this if you want to put the on-disk cache in a
# non-standard location:

# diskCacheRoot = "~/.polipo-cache/"

# Uncomment this if you want to disable the local web server:

localDocumentRoot = ""

# Uncomment this if you want to enable the pages under /polipo/index?
# and /polipo/servers?.  This is a serious privacy leak if your proxy
# is shared.

# disableIndexing = false
# disableServersList = false

disableLocalInterface = true
disableConfiguration = true

### Domain Name System
### ******************

# Uncomment this if you want to contact IPv4 hosts only (and make DNS
# queries somewhat faster):
#
# dnsQueryIPv6 = no

# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
# double-stack hosts:
#
# dnsQueryIPv6 = reluctantly

# Uncomment this to disable Polipo's DNS resolver and use the system's
# default resolver instead.  If you do that, Polipo will freeze during
# every DNS query:

dnsUseGethostbyname = yes


### HTTP
### ****

# Uncomment this if you want to enable detection of proxy loops.
# This will cause your hostname (or whatever you put into proxyName
# above) to be included in every request:

disableVia = true

# Uncomment this if you want to slightly reduce the amount of
# information that you leak about yourself:

# censoredHeaders = from, accept-language
# censorReferer = maybe

censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe

# Uncomment this if you're paranoid.  This will break a lot of sites,
# though:

# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
# censorReferer = true

# Uncomment this if you want to use Poor Man's Multiplexing; increase
# the sizes if you're on a fast line.  They should each amount to a few
# seconds' worth of transfer; if pmmSize is small, you'll want
# pmmFirstSize to be larger.

# Note that PMM is somewhat unreliable.

# pmmFirstSize = 16384
# pmmSize = 8192

# Uncomment this if your user-agent does something reasonable with
# Warning headers (most don't):

# relaxTransparency = maybe

# Uncomment this if you never want to revalidate instances for which
# data is available (this is not a good idea):

# relaxTransparency = yes

# Uncomment this if you have no network:

# proxyOffline = yes

# Uncomment this if you want to avoid revalidating instances with a
# Vary header (this is not a good idea):

# mindlesslyCacheVary = true

# Suggestions from Incognito configuration
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
5
Bob

Fiddler は、http要求からsocksトンネル要求への変換も許可します。

これを実行して、いくつかのWindows Updateをプッシュして、(Amazon EC2とPuTTY経由で)socks接続を介して実行しました。

このページから https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

Fiddlerには、「FiddlerScript」タブがあり、以下を追加できます。

X-OverrideGatewayフラグを使用し、socks=接頭辞を使用して、> Fiddlerが上流サーバーと通信するときにSOCKS v4aプロトコルを使用する必要があることを示します。

たとえば、TORインストーラーは、Polipoと呼ばれるポート9150のSOCKSプロキシを使用して、TORネットワークへのエントリポイントを設定します。 FiddlerScriptのOnBeforeRequestメソッド内に次のコードを追加して、TORネットワーク経由でtest.example.comにリクエストをルーティングできます。

    if (oSession.HostnameIs("test.example.com")) {
      oSession["x-OverrideGateway"] = "socks=127.0.0.1:9150";    
  }

すべてのトラフィックをSOCKS経由で送信したい場合は、各セッションに対して無条件にX-OverrideGatewayフラグを設定するだけです。

2

Socks5へのHTTPプロキシ

インストール python-proxy

$ pip3 install pproxy
$ pproxy -r socks5://127.0.0.1:9150 -vv

使用法

http://127.0.0.1:8080
https://127.0.0.1:8080
1
Almog

WinGate でもこれを実行できます。 WWWプロキシの[接続]タブを確認すると、アップストリームのSOCKS4、SOCKS4a、またはHTTPプロキシを選択できます。

WinGateには、10人の同時ユーザー用の無料ライセンスもあります。

WWWプロキシ接続タブ

免責事項:私はWinGateの作者であるQbikのために働いています

0
Adrien