HTTP 요청을 SOCKS5로 변환


46

현재 TOR에서 테스트 작업을 수행하고 있으며 작은 문제가 발생했습니다. Tor의 클라이언트는 SOCKS5 프로토콜을 통한 연결 수신 만 지원하지만, 사용중인 응용 프로그램은 HTTP 프록시 프로토콜 만 지원합니다.

중간에 무언가를 넣을 수 있습니까? 예를 들어 갔다.

내 프로그램 (HTTP 만 해당)> HTTP-SOCKS 변환기> Tor SOCKS5 서버


응용 프로그램이 프록시를 전혀 지원하지 않아도 Tor를 통해 모든 트래픽을 투명하게 라우팅하는 OS (예 : Tails 및 Whonix)를 사용할 수 있습니다. 또한 DNS 누출 및 기타 Tor 우회 위험을 크게 줄입니다.
코드 InChaos

답변:


44

DeleGate 가 다음과 같이이 작업 을 수행 할 수있는 것처럼 보입니다 (DeleGate는 포트 8080에서 HTTP 연결을 수락하고 포트 9050에서 SOCKS 서버로 전달합니다) :

delegated -P8080 SERVER=http SOCKS=localhost:9050

@ Dboy1612 :이 사용 사례에 대한 위임 경험에 대해 말씀해 주시겠습니까? 또한 동일한 사용 사례가 있습니다.
pradeepchhetri 2016 년

훌륭한 도구입니다. 최근에 새 버전 (v9.9.9)이 릴리스되었습니다.
kev

1
다운로드 및 설치 중에 이메일 주소가 필요한 이유는 무엇입니까?
Halil Özgür

2
@pradeepchhetri 님과 함께 하루를 보낸 후 delegate(d), 구성 문서의 여러 반대 주장에도 불구하고 DNS 요청을 유출하기로 결정했습니다. 나는 그것이 틀렸다는 것을 알고 싶지만 그 시점에서는 비관적입니다.
Adam Mackler 2014

위대한 작품
고양이

9

Tor 번들에 더 이상 폴 포가 없습니다. 공식 tor FAQ의 내용입니다 .

과거에는 Tor 번들에 Privoxy 또는 Polipo와 같은 HTTP 프록시가 포함되어 있었기 때문에 Firefox 6에서 최종적으로 수정 된 Firefox의 버그를 해결하기위한 것입니다. 이제 Tor를 사용하기 위해 별도의 HTTP 프록시가 필요하지 않습니다. Torbutton은 Firefox와 웹 사이트의 상호 작용을보다 잘 제어하므로 보안이 향상됩니다.

Tor와 함께 외부 응용 프로그램을 사용하려는 경우 0 단계는 문제를 해결할 수있는 경고 세트를 다시 읽어야합니다. 1 단계는 http 프록시 대신 Socks 프록시를 사용하는 것입니다. Tor는 Windows의 포트 9050에서 Socks 프록시를 실행하거나 의 OSX 및 Linux를 참조하십시오 .

실패하면 privoxy 를 설치하십시오 . 그러나이 방법은 초보자에게 권장되지 않습니다. Privoxy는 Tor와 Privoxy의 구성 예를 가지고 있습니다 .


1
그것은 나를 위해 일했다 tnx!
Hikari

7

Privoxy를 사용할 수도 있습니다 . 이 줄을 config.txt파일에 추가 하십시오.

forward-socks5 / 127.0.0.1:9050 .

(끝에 작은 점을 잊지 마십시오.)

그런 다음 HTTP 또는 HTTPS 프록시를 사용하십시오. 127.0.0.1:8118


굉장하고 쉬운 방법. 감사합니다. 매력처럼 작동
iraj jelodari

5

운영 체제를 지정하지 않았습니다. 앞으로 해주세요.


이 답변은 Tor 프로젝트에서 호스팅하는 Vidalia 번들에 포함되어 있으므로 Windows에서 권장하는 Polipo를 권장합니다. 또한 Polipo에는 * nix 버전이 있으며 원래 * nix 용으로 설계되었으므로 설정 방법에 대한 지침을 포함 시켰습니다. 아래 두 번째 섹션을 참조하십시오. 중요한 경우 다소 가벼운 솔루션입니다.


윈도우

Vidalia 번들을 다운로드하십시오. Vidalia GUI와 Tor와 함께 Polipo라는 프로그램이 포함되어 있습니다. 번들에서 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 번들의 기본 구성은이 답변의 맨 아래에 포함됩니다.


*아니야

NT (Windows)를 기반으로하지 않는 Linux, Unix, BSD, OS X, 가장 중요한 최신 (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의 공식 사이트는 여기여기에 있습니다 .
Siu Ching Pong -Asuka Kenji-

Windows에서도 3proxy를 사용하고 있습니다. SSH 터널 (SOCKS5)을 SOCKS를 지원하지 않는 프로그램의 HTTP 프록시로 전환하는 데 사용합니다. 3proxy는 러시아인에 의해 개발되었습니다. 오픈 소스입니다. 공식 사이트는 여기 있고 SourceForge 프로젝트는 여기 있습니다 (공식 사이트처럼 업데이트되지 않음).
Siu Ching Pong -Asuka Kenji-

2

Fiddler 는 또한 http 요청에서 양말 터널링 요청으로 변환 할 수 있습니다.

이 작업을 수행하여 일부 Windows 업데이트를 양말 연결을 통해 (Amazon EC2 및 Putty를 통해) 실행했습니다.

이 페이지에서 https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

Fiddler에는 다음을 추가 할 수있는 "FiddlerScript"탭이 있습니다.

은 Using 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.