我试图在TAILS系统中使用Urlib2用python打开一个简单的网页,但是我无法使其工作,错误111,连接被拒绝。显然这是因为TAILS拒绝所有非Tor流量,并且解决方案应使用以下方法打开代理:

proxy = urlib2.ProxyHandler({protocol:"127.0.0.1:{}".format(PORT)})
opener = urlib2.build_opener(proxy)
opener.open("https://jojeji")


我尝试了许多协议和端口,并假定此选择是我唯一的问题。 Tails在etc/ferm/ferm.conf中有一个配置文件。在输出部分中说:

            # White-list access to Tor's SOCKSPort's
            daddr 127.0.0.1 proto tcp syn dport 9050 {
                mod owner uid-owner _apt ACCEPT;
                mod owner uid-owner proxy ACCEPT;
                mod owner uid-owner nobody ACCEPT;
            }
              daddr 127.0.0.1 proto tcp syn mod multiport
              destination-ports (9050 9061 9062 9150) {
                mod owner uid-owner $amnesia_uid ACCEPT;
            }


也有以下白名单:

access to onionshare
access to Monkeysphere
access to CUPS
access to the accesibility daemon
access to system DNS and TOr's DNS PORT
access to Tor's TransPort
access to Tor control port filtrer
access to Tor ControlPort


因此,TAILS用户应该将这些值传递给urlib2代理,还有没有更好的方法来访问Internet通过urlib2?

最佳答案

Tails / Tor实现SOCKS5代理,而不是HTTP代理。 AFAIK,urlib2不直接支持此功能。您需要使用SocksiPy模块as shown in this answer

袜子代理是127.0.0.1,端口是9050。

您的另一个选项是to use pycurl甚至是命令行卷曲(带有--socks5-hostname = 127.0.0.1:9050)

关于python - TAILS错误111连接中的urllib2被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47399472/

10-12 22:48