我试图在TAILS系统中使用Urlib2打开一个简单的网页,但是我无法使其工作,错误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访问互联网?
答案 0 :(得分:1)
Tails / Tor实现SOCKS5代理,而不是HTTP代理。 AFAIK,urlib2不直接支持。您需要使用SocksiPy模块as shown in this answer。
socks代理是127.0.0.1,端口是9050。
您的其他选项是to use pycurl甚至是命令行卷曲(使用--socks5-hostname = 127.0.0.1:9050)