一、一般适用情况
1、两台都有外网IP,一台服务器请求资源通过另外一个服务器,本文重点讲第一种。
2、两台服务器,其中一台服务器只有内网IP,另外一台服务器有公网和内网IP。
二、前提
# 确认服务器端ip_forward转发开启 echo 1 > /proc/sys/net/ipv4/ip_forward ip_forward需要设定为1 sysctl -a |grep -w ip_forward net.ipv4.ip_forward = 1
客户端配置
export https_proxy=http://服务端内网ip:3128
三、下载
centos yum install squid ubuntu sudo apt-get install squid3
修改配置文件
vim /etc/squid/squid.conf #修改配置文件 #允许的客户端ip acl allcomputers src 0.0.0.0/0.0.0.0 #配置用户名密码,后面会生成passwords文件 auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords auth_param basic realm proxy acl authenticated proxy_auth REQUIRED http_access allow authenticated allcomputer
找到http_access deny all并注释掉
#http_access deny all
最好修改一下默认的3128端口,因为这个端口是默认的,很容易被网络上的代理爬虫探测到。
http_port 8828
用户名密码认证(如果没有htpasswd命令需要下载)
网络上有很多专门爬免认证的代理的爬虫,如果我们自己搭建的代理服务器不加认证的话,会被这些爬虫探测到然后沦为了免费代理。 使用htpasswd来创建passwords文件,htpasswd命令在软件包apache2-utils中 sudo htpasswd -c -d /etc/squid3/passwords 自定义用户名 sudo chmod o+r /etc/squid3/passwords #centos7 systemctl restart squid.service #centos6 sudo service squid3 start 或者 etc/init.d/squid start 加入全局环境变量 将我们的代理配置上: vim /etc/profile #(注意备份) #export http_proxy="http://用户名:密码@代理IP:代理端口" export http_proxy="http://xxxx:xxxxxxxx@172.21.0.14:8888" #在客户端验证 curl -l "http://www.baidu.com"
#在服务端查看日志 squid3的访问日志文件在/var/log/squid3/access.log tail -f /var/log/squid3/access.log [root@VM_0_14_centos ~]# tailf /var/log/squid/access.log 1546068808.417 174 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html 1546068810.082 11 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html