Ubah permintaan HTTP ke SOCKS5

46

Saat ini saya sedang melakukan beberapa pekerjaan pengujian dengan TOR dan berlari ke masalah kecil. Klien Tor hanya mendukung penerimaan koneksi melalui protokol SOCKS5, tetapi aplikasi yang saya gunakan hanya mendukung HTTP Proxy Protocals.

Apakah mungkin untuk meletakkan sesuatu di tengah? Jadi itu misalnya pergi.

Program Saya (Hanya HTTP)> Konverter HTTP ke SOCKS> Tor SOCKS5 Server

Dustin
sumber
Anda dapat menggunakan OS (misalnya Tails dan Whonix) yang secara transparan merutekan semua lalu lintas melalui Tor tanpa aplikasi yang perlu mendukung proxy sama sekali. Ini juga sangat mengurangi risiko kebocoran DNS dan bypass Tor lainnya.
CodesInChaos

Jawaban:

44

Sepertinya DeleGate dapat melakukan ini, dengan sesuatu seperti berikut (di mana DeleGate akan menerima koneksi HTTP pada port 8080 dan meneruskan ke server SOCKS pada port 9050):

delegated -P8080 SERVER=http SOCKS=localhost:9050
Mgorven
sumber
@ Dboy1612: Dapatkah Anda menceritakan pengalaman Anda dengan didelegasikan untuk use case ini? Saya juga memiliki kasus penggunaan yang sama.
pradeepchhetri
Ini alat yang hebat. Versi baru (v9.9.9) dirilis baru-baru ini.
kev
1
Adakah yang tahu mengapa itu memerlukan alamat email selama unduhan DAN instal?
Halil Özgür
2
@pradeepchhetri Setelah menghabiskan satu hari bermain dengan delegate(d), saya telah menyimpulkan bahwa itu benar-benar bertekad untuk membocorkan permintaan DNS, terlepas dari beberapa klaim yang bertentangan dalam dokumentasi konfigurasi. Saya ingin mengetahui bahwa saya salah tentang hal itu, tetapi saya pesimis pada poin itu.
Adam Mackler
Berfungsi bagus
cat
9

Bundel Tor tidak lagi memiliki polipo, ini dari resmi untuk FAQ :

Di masa lalu, bundel Tor menyertakan proxy HTTP seperti Privoxy atau Polipo, semata-mata untuk mengatasi bug di Firefox yang akhirnya diperbaiki di Firefox 6. Sekarang Anda tidak perlu proxy HTTP terpisah untuk menggunakan Tor, dan bahkan meninggalkannya membuat Anda lebih aman karena Torbutton memiliki kontrol yang lebih baik atas interaksi Firefox dengan situs web.

Jika Anda mencoba menggunakan beberapa aplikasi eksternal dengan Tor, langkah nol seharusnya membaca ulang sekumpulan peringatan untuk cara-cara yang dapat Anda abaikan. Langkah pertama adalah mencoba menggunakan proxy Socks daripada proxy http - Tor menjalankan proxy Socks pada port 9050 pada Windows, atau lihat di atas untuk OSX dan Linux.

Jika itu gagal, jangan ragu untuk menginstal privoxy . Namun, harap disadari bahwa pendekatan ini tidak disarankan untuk pengguna pemula. Privoxy memiliki contoh konfigurasi Tor dan Privoxy .

Stefan Rogin
sumber
1
Ini bekerja untuk saya tnx!
Hikari
7

Anda juga dapat menggunakan Privoxy . Tambahkan baris ini ke config.txtfile -nya :

forward-socks5 / 127.0.0.1:9050 .

(Jangan lupa titik kecil di akhir.)

Kemudian gunakan proxy HTTP atau HTTPS di 127.0.0.1:8118

Tamu
sumber
cara yang mengagumkan dan mudah. Terima kasih. bekerja seperti pesona
iraj jelodari
5

Anda tidak menentukan sistem operasi. Silakan lakukan di masa depan.


Jawaban ini merekomendasikan Polipo, yang termasuk dalam bundel Vidalia yang diselenggarakan oleh proyek Tor dan karenanya mungkin direkomendasikan oleh mereka untuk Windows. Polipo juga memiliki versi * nix (dan pada awalnya dirancang untuk * nix), jadi saya telah memasukkan instruksi tentang cara mengaturnya - lihat bagian kedua di bawah ini. Ini adalah solusi yang agak ringan, jika itu penting.


Windows

Unduh bundel Vidalia. Ini termasuk Vidalia GUI dan program yang disebut Polipo, bersama dengan Tor. Dalam bundel, Polipo secara default menjalankan proxy HTTP pada port 8118 yang dialihkan melalui proxy Tor SOCKS pada port 9050.

Konfigurasi lanjutan

Anda juga dapat mengkonfigurasi Polipo secara manual, tanpa bundel Vidalia.

Diambil dari http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Mereka juga menyediakan binari yang harus Anda unduh.

Konfigurasi

Polipo dikonfigurasi dengan menetapkan sejumlah variabel konfigurasi dalam file konfigurasi Polipo, yang merupakan file teks biasa. Untuk memberi tahu Polipo agar menggunakan tor dan tidak men-cache halaman yang diambil pada disk, Anda ingin menambahkan baris berikut ke file konfigurasi Anda:

socksParentProxy = localhost:9050
diskCacheRoot=""

Anda juga ingin menonaktifkan antarmuka konfigurasi lokal untuk melindungi diri Anda dari kerentanan browser:

disableLocalInterface=true

Lari itu

Saat menjalankan Polipo, Anda harus menentukan lokasi untuk file konfigurasi, dengan menggunakan flag -c pada baris perintah Polipo:

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

Perhatikan bahwa bahkan di bawah Windows Anda harus menggunakan sintaks Unix untuk nama file (menggunakan garis miring) dan Anda tidak dapat menentukan perangkat ("drive") untuk digunakan.

Port mendengarkan default Polipo adalah 8123.

Konfigurasi default dari bundel Vidalia disertakan di bagian bawah jawaban ini.


* nix

Termasuk Linux, Unix, BSD, OS X, sebagian besar sistem operasi modern (2012) utama yang tidak didasarkan pada NT (Windows).

Sekali lagi, diambil dari http://www.pps.jussieu.fr/~jch/software/polipo/tor.html

Unduh paket dari repositori apa pun yang Anda gunakan. Google dapat membantu di sini. Atau, biner langsung dapat diunduh.

Konfigurasi

Polipo dikonfigurasi dengan mengatur sejumlah variabel konfigurasi dalam file konfigurasi Polipo, yang merupakan salah satu ~/.polipoatau /etc/polipo/config, mana saja yang ada. Untuk memberi tahu Polipo agar menggunakan tor dan tidak men-cache halaman yang diambil pada disk, Anda ingin menambahkan baris berikut ke file konfigurasi Anda:

socksParentProxy = localhost:9050
diskCacheRoot=""

Anda juga ingin menonaktifkan antarmuka konfigurasi lokal untuk melindungi diri Anda dari kerentanan browser:

disableLocalInterface=true

Jika Anda ingin menentukan lokasi yang berbeda untuk file konfigurasi, Anda dapat menentukannya dengan menggunakan flag -c pada baris perintah Polipo.

Perhatikan bahwa jika Anda menginstal Polipo dari biner yang disediakan distribusi, itu mungkin tidak akan mempertimbangkan ~ / .polipo - Anda perlu mengedit / etc / polipo / config.

Lari itu

Jika Anda menginstal Polipo dari paket distribusi yang disediakan, Polipo mungkin sudah berjalan; Anda perlu me-restart sehingga mengambil konfigurasi baru ke dalam akun. Jika tidak, ambil jendela terminal gratis dan ketik:

$ polipo

Jika Anda menggunakan lokasi non-standar untuk file konfigurasi Polipo, tentukan di baris perintah, misalnya:

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

Port mendengarkan default Polipo adalah 8123.

Konfigurasi default dari bundel Vidalia disertakan di bagian bawah jawaban ini.


Konfigurasi Polipo default (bundel Vidalia)

Ini adalah konfigurasi Polipo default saya dari bundel Vidalia untuk Windows. Dari tampilan itu, itu harus bekerja di * nix juga - tidak ada platform spesifik sejauh yang saya tahu. Ya, ini adalah konfigurasi 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
Bob
sumber
Saya menggunakan polipo di Mac OS X 10.6. Tampaknya memiliki beberapa masalah ketika melakukan permintaan POST kadang-kadang. Situs resmi polipo ada di sini dan di sini .
Siu Ching Pong -Asuka Kenji-
Saya juga menggunakan 3proxy pada Windows. Saya menggunakannya untuk mengubah terowongan SSH saya (SOCKS5) menjadi proxy HTTP untuk program yang tidak mendukung SOCKS. 3proxy dikembangkan oleh Rusia. Ini adalah open-source. Situs resmi ada di sini dan proyek SourceForge di sini (tidak diperbarui sebagai situs resmi).
Siu Ching Pong -Asuka Kenji-
2

Fiddler juga memungkinkan konversi dari permintaan http ke permintaan terusan kaus kaki.

Saya melakukan ini untuk mendorong beberapa Pembaruan Windows untuk berjalan melalui koneksi kaus kaki (via Amazon EC2 dan Putty).

Dari halaman ini https://groups.google.com/forum/#!topic/httpfiddler/6m2xEe0fRmw

Di Fiddler ada tab "FiddlerScript" tempat Anda dapat menambahkan yang berikut:

Menggunakan X-OverrideGatewayflag, gunakan socks=awalan untuk menunjukkan bahwa> Fiddler harus menggunakan protokol SOCKS v4a ketika berbicara dengan server hulu.

Misalnya, penginstal TOR mengatur titik masuk ke jaringan TOR menggunakan proxy SOCKS pada port 9150 yang disebut Polipo. Anda dapat menambahkan berikut ini di dalam OnBeforeRequestmetode FiddlerScript Anda untuk merutekan permintaan apa pun ke test.example.com melalui jaringan TOR:

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

Jika Anda lebih suka mengirim semua lalu lintas melalui SOCKS, Anda dapat mengatur X-OverrideGatewaybendera tanpa syarat untuk setiap Sesi.

David d C e Freitas
sumber
0

WinGate juga dapat melakukan ini. Periksa tab Connection pada proksi WWW Anda dan Anda dapat memilih upstream SOCKS4, SOCKS4a, atau proksi HTTP.

WinGate juga memiliki lisensi gratis untuk 10 pengguna secara bersamaan.

Tab Koneksi Proksi WWW

Penafian: Saya bekerja untuk Qbik yang merupakan penulis WinGate

Adrien
sumber