> Linux教程 > linux基础 >

Linux -- squid 正向代理

正向代理: 机器通过该机器访问外部网络.
本例: 使用爬虫去抓取网络数据.但抓取过多时会被封IP.于是, 在一个机器上绑定若干个 IP. 抓取时使用代理.
当然, 可以使用其它代理机器.但这里我们是使用的代理到本机.


在本机上绑定了 4 个 IP. 同时运行四个抓取实例. 每一个都使用代理, 代理到本机不同的端口.


机器上绑定若干 IP 的方式:
http://blog.sina.com.cn/s/blog_5f54f0be0101josm.html


Squid 基本介绍:
http://blog.sina.com.cn/s/blog_5f54f0be0101jp2f.html


本机上的 IP 分别是:
42.55.153.1
42.55.153.2
42.55.153.3
42.55.153.4


分别使用端口:
44881
44882
44883
44884


squid 配置: /etc/squid/squid.conf:


# 在代理的时候去掉请求头部.再另行添加代理后的头部
forwarded_for delete
via Deny all


# 允许本机访问.如果不加,可能不成功
http_access allow localhost


# 定义本机上的各个 IP
acl ip1 myip 42.55.153.1
acl ip2 myip 42.55.153.2 
acl ip3 myip 42.55.153.3
acl ip4 myip 42.55.153.4 


# 定义本机上的各个端口
acl p1 myport 44881
acl p2 myport 44882
acl p3 myport 44883
acl p4 myport 44884


# 让 squid 监听本机的各个端口
http_port 44881
http_port 44882
http_port 44883
http_port 44884


# 定义从 squid 代理往外的数据, 每个 ip 分别使用哪个端口
tcp_outgoing_address ip1   p1
tcp_outgoing_address ip2   p2
tcp_outgoing_address ip3   p3
tcp_outgoing_address ip4   p4




把上面的配置加到当前的配置文件上部即可.


配置完后重启 squid 服务.


然后再配置爬虫软件使用代理,使用相应的 IP 和端口.
当使用 44881 端口时, 出口使用的 IP 是 ip1.
按上面的 tcp_outgoing_address  配置的规则.
依此类推, 这样, 同时运行四个任务,实际上出去的 IP 就是四个. 就不会被封了. 

(责任编辑:IT)