TOR作为HTTP代理而不是SOCKS

时间:2015-02-14 20:34:52

标签: proxy tor

我想尝试使用TOR作为HTTP代理,而不是SOCKS代理 我有问题,目标阻止SOCKS,我想尝试用HTTP代理检查它。

我没有找到任何运行tor作为HTTP代理的解决方案。

感谢。

4 个答案:

答案 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兼容。