【问题标题】:Python urllib2 Tor 514 Authentication RequiredPython urllib2 Tor 514 需要身份验证
【发布时间】:2011-12-18 06:32:50
【问题描述】:

我正在尝试将 Tor 与 python 和 urllib2 一起使用,但被卡住了。以下

print opener.open('http://check.torproject.org/').read()

telnet 127.0.0.1 9051

给我以下错误:

514 Authentication Required.

这是我要使用的代码:但是我在 urllib2.urlopen 调用中收到相同的 514 身份验证错误。

import urllib2
# using TOR !
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:9051"} )
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
# every urlopen connection will then use the TOR proxy like this one :
urllib2.urlopen('http://www.google.com').read()

关于为什么会发生这种情况的任何建议?

Tor Vidalia 浏览器 -> 设置 -> 高级:身份验证设置为“随机生成”

我正在使用 Python 2.65 urllib2 Tor

【问题讨论】:

    标签: python urllib2 tor


    【解决方案1】:

    Google 搜索 suggests(和 Tor 手册 confirms)发现 9051 是 Tor 的默认控制端口。默认情况下,实际代理在端口 9050 上运行,这是您需要使用的。但是,Vidalia 在没有额外配置的情况下不会使用默认端口。

    另一个问题是 urllib2 默认无法使用 SOCKS 代理。有关可能的解决方案,请参阅这些twoquestions

    【讨论】:

    • 所以我用 9050 替换了 9051,现在收到“连接被拒绝”。我正在为 Linux 使用 Tor 浏览器包安装。 Tor 通过 Vidalia 控制台运行。日志文件显示“在 127.0.0.1:9051 上打开控制侦听器。”我需要启用 9050 端口吗?当我执行“netstat -a|grep 905”时,我看到的只是 9051 端口。我想念的东西一定很简单。
    • 我发现了如何启用 socks 端口。在 Tor ./Data/Tor/torrc 文件中,我将 SocksPort 从 auto 更改为 9050。所以现在我在执行 netstat 时看到 9050 在监听。现在下一个问题是,当使用 9050 时,urllib2 抱怨说“Tor 不是 HTTP 代理”。所以现在看起来我必须使用 HTTP 代理,比如 privoxy 才能使用 Tor。如果没有,请告诉我。
    • 看起来捆绑包中的 Vidalia 使用非默认端口... 消息日志 - Vidalia 中的高级应该包含类似“Socks listener 监听端口 ”的行 - 这是您实际使用的端口需要使用。或者像你一样切换端口。
    • 是的,Tor 本身不提供 HTTP 代理。
    • 知道了!感谢您的指导。 Tor 的套接字侦听器端口设置为 9050 而不是自动,我安装了 TorCtl,它建立了一个 8118 的侦听端口,它与 Tors 9050 端口通信。所以我的工作 ProxyHandler 行现在是: proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"}) 所以我有 Python -> urllib2 -> TorCtl -> Tor 作为路径。
    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2021-10-10
    • 2020-10-16
    相关资源
    最近更新 更多