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


46

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

途中に何かを置くことは可能ですか?それで、例えばそれは行きました。

マイプログラム(HTTPのみ)> HTTP to SOCKS Converter> Tor SOCKS5 Server


アプリケーションをプロキシをまったくサポートする必要なく、Torを介してすべてのトラフィックを透過的にルーティングするOS(TailsやWhonixなど)を使用できます。これにより、DNSリークやその他のTorバイパスのリスクも大幅に削減されます。
CodesInChaos

回答:


44

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

delegated -P8080 SERVER=http SOCKS=localhost:9050

@ Dboy1612:このユースケースに委任された経験を教えてください。同じユースケースもあります。
pradeepchhetri 14年

それは素晴らしいツールです。最近リリースされた新しいバージョン(v9.9.9)。
ケブ14年

1
ダウンロードおよびインストール中にメールアドレスが必要な理由は何ですか?
ハリルÖzgür14年

2
@pradeepchhetriで遊んで一日を過ごした後delegate(d)、構成ドキュメントの複数の反対の主張にもかかわらず、私は、DNSリクエストをリークすることは絶対に決定されていると結論付けました。私はそれについて間違っていることを発見したいのですが、その点については悲観的です。
アダムマックラー14

素晴らしい作品

9

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とPrivoxyの設定例があります。


1
それは私のためにtnx働いた!

7

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

forward-socks5 / 127.0.0.1:9050 .

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

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


素晴らしく簡単な方法です。ありがとうございました。チャームのように動作します
iraj jelodari

5

オペレーティングシステムを指定しませんでした。将来的にそうしてください。


この回答では、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

Mac OS X 10.6でpolipoを使用しています。時々POSTリクエストを行うと問題が発生するようです。polipoの公式サイトはこちらこちらです。
シウチンポン

Windowsでも3proxyを使用しています。SOCKSをサポートしないプログラムの場合、SSHトンネル(SOCKS5)をHTTPプロキシに変換するために使用します。3proxyはロシア人によって開発されました。オープンソースです。公式サイトはこちら、SourceForgeプロジェクトはこちら(公式サイトほど更新されていません)。
シウチンポン

2

Fiddlerでは、http要求からsocks tunnelled要求への変換も許可されています。

これは、ソックス接続(Amazon EC2およびPutty経由)を介して実行するWindows Updateをプッシュするために行いました。

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

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

使用X-OverrideGatewayフラグを使用しsocks=、上位サーバーに話すときのことを示すために、接頭辞を>フィドラーはSOCKS V4Aプロトコルを使用する必要があります。

たとえば、TORインストーラーは、ポート9150でPolipoと呼ばれる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セッションごとに無条件でフラグを設定するだけです。


0

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

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

WWWプロキシ接続タブ

免責事項:私はWinGateの著者であるQbikで働いています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.