大名鼎鼎的洋葱路由(onion routing),很多朋友应该听说过,这是一种在网络上匿名沟通的技术,让他人难以追踪使用者身份。Tor浏览器便是常用的一种实现工具,虽然很多人使用这个工具匿名进入暗网,但有些仅仅是出于隐私保护,我想说一句“技术无罪,匿名不等于犯罪”。
前些时候对某站点做爬虫测试,需要一些代理,正好曾在Google云开通过账号,赠送了300美元余额还未使用,于是便想到在谷歌云服务器上使用tor来隐匿真实IP,达到代理访问的目的。
注意:本次目标并非使用Tor浏览器进行暗网冲浪,而是使用Tor搭建一个代理池服务
1. 前提要求爬取的站点,没有屏蔽海外IP访问,否则还是参考笔者另外一篇《VPS+TinyProxy快速搭建代理》
2. Centos7服务器一台,香港或海外地区。建议使用国外供应商主机,我便是在Google云开通了一台最便宜的主机,需要自备梯子
本代理池的搭建,Tor是必备的工具,不过要想将其作为http代理使用,还需要搭配Privoxy进行请求转换
通常在图形界面使用的是Tor(The onion Router)浏览器,但这次是要使用Tor做代理,所以只需要安装Tor内核
安装
epel源有Tor软件
$ yum install -y epel-release
$ yum install -y tor
配置
配置文件路径 /etc/tor/torrc, 默认Tor大约每10分钟更换一次IP地址,可能无法满足要求,这里将IP更换频率改为10秒
MaxCircuitDirtiness 10
服务管理
启动tor
$ systemctl start tor
关闭tor
$ systemctl stop tor
测试
$ curl http://httpbin.org/ip
$ torsocks curl http://httpbin.org/ip
以上两个命令分别是获取本机真实IP,和Tor代理访问后的IP。不出意外,可以看到两个结果是不同的
Tor提供的是SOCKS5代理, 但爬虫程序通常用的是http代理,需要有个工具将http请求转发到SOCKS代理,使用Privoxy可以解决该问题。
Tor默认监听地址是127.0.0.0:9050 ,可以使用netstat命令查看
$ netstat -nltup |grep tor
安装
与安装Tor的方式相同
$ yum install privoxy
配置
配置文件路径 /etc/privoxy/config
,主要修改监听端口、访问权限部分
#外网访问8118端口
listen-address 0.0.0.0:8118
#...
# 将http请求转发到socks5代理
forward-socks5 / 127.0.0.1:9050
#授权哪些ip,可以使用该代理,这里应该是授权给爬虫服务器
permit-access 127.0.0.1
permit-access 46.188.188.188
服务管理
启动privoxy
$ systemctl start privoxy
关闭privoxy
$ systemctl stop privoxy
测试
$ netstat -nltup |grep privoxy
$ curl http://httpbin.org/ip
$ curl http://httpbin.org/ip -x http://127.0.0.1:8118
不出意外,可以看到http代理成功, 现在就可以在爬虫服务器测试使用了
1. Tor服务器需要在墙外
2. 不适用于访问屏蔽海外IP的网站
3. 注意防火墙和IP白名单规则,可能会导致被滥用或无法正常使用
4. 合法使用
end
精彩推荐: