python URlib2在TAILS错误111连接被拒绝

cbjzeqam  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(140)

我试图在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代理,还有什么更好的方法可以通过urlib2访问互联网吗?

csga3l58

csga3l581#

Tails/Tor实现了SOCKS 5代理,而不是HTTP代理。AFAIK,urlib 2不直接支持此功能。您需要使用SocksiPy模块as shown in this answer
socks代理是127.0.0.1,端口是9050。
另一个选项是to use pycurl或者命令行curl(使用--socks 5-hostname=127.0.0.1:9050)

相关问题