一、一般適用情況
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