我想尝试使用TOR作为HTTP代理,而不是SOCKS代理 我有问题,目标阻止SOCKS,我想尝试用HTTP代理检查它。
我没有找到任何运行tor作为HTTP代理的解决方案。
感谢。
答案 0 :(得分:2)
最简单的方法是在HTTPTunnelPort 9080
文件中添加/etc/tor/torrc
行。
此后,您将打开localhost:9080
套接字,并可以设置http_proxy=http://localhost:9080
环境变量来告诉应用程序使用它。
答案 1 :(得分:0)
据我所知,目的地应该不知道您使用的代理类型,即您和代理之间的代理(TOR)。
或许更有可能阻止TOR出口节点? (他们公开上市)
答案 2 :(得分:0)
你可以试试Polipo。
安装:
<svg xmlns="http://www.w3.org/2000/svg">
<polyline points="200 100, 220 120, 280 120, 300 100" style="stroke:red; stroke-width:2px; fill:none" />
<path d="M200 100 L220 150 H280 L300 100" style="stroke:blue;stroke-width:2px; fill:none" />
</svg>
然后将代理配置为链接到Tor的SOCKS代理,修改/ etc / polipo / config:
apt-get install polipo
或者按照本教程 https://www.marcus-povey.co.uk/2016/03/24/using-tor-as-a-http-proxy/
Polipo位于:https://github.com/jech/polipo
我尝试了它的确有效。但是,由于polipo是单线程的,性能并不如预期的那么好。 ;)
答案 3 :(得分:0)
我正在做一个实验来解决问题。这只是一个替代答案。该Python脚本将充当将HTTP / HTTPS请求转发到Tor代理的代理。
import sys
major_version = sys.version_info.major
if major_version == 2:
import SocketServer
import SimpleHTTPServer
elif major_version == 3:
import http.server as SimpleHTTPServer
import socketserver as SocketServer
import requests
PROX_LPORT = 1232 # the proxy port you need to use
def get_tor_session():
session = requests.session()
# Tor uses the 9050 port as the default socks port
session.proxies = {'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050'}
return session
class LocalProxy(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
# Make a request through the Tor connection
session = get_tor_session()
self.wfile.write(session.get(self.path).text.encode())
httpd = SocketServer.ForkingTCPServer(('', PROX_LPORT), LocalProxy)
print("serving at port", PROX_LPORT)
httpd.serve_forever()
它在Firefox上可以正常运行。它还与Python 2和3兼容。