- Squid,一個高性能的代理緩存服務(wù)器,支持FTP、gopher、HTTP協(xié)議。
Squid,一個緩存Internet 數(shù)據(jù)的軟件,其接收用戶的下載申請(作為代理服務(wù)器),并自動處理所下載的數(shù)據(jù),并返回給客戶。
- 當(dāng)一個用戶想要下載一個主頁(如QQ:https://qq.com)時,可以向Squid 發(fā)出一個申請,讓Squid 代替其進(jìn)行下載,然后Squid 連接所申請網(wǎng)站并請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當(dāng)別的用戶申請同樣的頁面時,Squid 把保存的備份立即傳給用戶,使用戶覺得速度相當(dāng)快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等協(xié)議并且Squid 可以自動地進(jìn)行處理,可以根據(jù)自己的需要設(shè)置Squid,使之過濾掉不想要的東西。
- Squid 是一個跨平臺服務(wù),可運(yùn)行在大多數(shù)Unix和OS/2版本的系統(tǒng)之上,已知的可工作的有:
Windows,AIX,Digital Unix,F(xiàn)reeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris
Squid 官網(wǎng):http://www.squid-cache.org
1. 安裝 squid
rpm -qa | grep squid
squid-3.5.20-12.el7.x86_64 // 表示安裝過
yum -y install squid // 安裝
2. 設(shè)置開機(jī)自啟動 squid
systemctl enable squid.service
3. 配置文件 squid.conf
vim /etc/squid/squid.conf
找到
http_access deny all
在之前添加下面數(shù)行內(nèi)容:注意路徑
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm hello-mimvp
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl myproxy proxy_auth REQUIRED
http_access deny !myproxy
http_access allow myproxy
增加2句,隱藏真實(shí)ip變成匿名代理,這是squid 3.1的寫法
via off
forwarded_for delete
添加后配置如下:
############# start ############
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm hello
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl myproxy proxy_auth REQUIRED
http_access deny !myproxy
http_access allow myproxy
via off
forwarded_for delete
############# end ##############
4. 用戶名密碼認(rèn)證 squid
利用 apache 攜帶的工具 htpasswd 生成密碼文件
htpasswd 是apache httpd自帶工具,需要先安裝 httpd,安裝expect便于自動化交互設(shè)置密碼
yum -y install httpd httpd-devel expect
并添加相應(yīng)的用戶信息
/usr/bin/htpasswd -c /etc/squid/passwd y-guest
根據(jù)提示輸入密碼:qaz123
成功后將會在 /etc/squid/passwd 中寫入:
用 cat /etc/squid/passwd 命令查看,顯示如下:
y-guest:MsJeP9bZ$BLCJYnpQyFR.dV5SBDxMg0
第一列是用戶名,第二列是密碼
5. 參數(shù)檢查和設(shè)置緩存
5.1 參數(shù)檢查
squid -k parse
5.2 設(shè)置緩存
vim /etc/squid/squid.conf
去掉下面一行的注釋#,否則squid -z無法執(zhí)行
cache_dir ufs /var/spool/squid 100 16 256
去掉后,初始化緩存
squid -z
[root@MyCloudServer ~]# squid -z
2018/06/22 09:19:08| Squid is already running! Process ID 1065
6. 啟動服務(wù) squid
systemctl start squid.service
查看3128已經(jīng)在運(yùn)行服務(wù)了
netstat -ntpl | grep 3128
顯示如下:
[root@MyCloudServer ~]# netstat -ntpl | grep 3128
tcp6 0 0 :::3128 :::* LISTEN 1065/(squid-1)
如果開啟了防火墻iptables規(guī)則,則還需要在/etc/sysconfig/iptables里添加下面一行,允許3128端口訪問:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
或者直接使用下面的命令關(guān)閉防火墻
systemctl stop firewalld.service
如果使用阿里云、騰訊云、AWS等云服務(wù)器搭建Squid,則需要在安全策略里,允許3128端口訪問
7. 查看日志 squid
tail -f /var/log/squid/access.log
tail -f /var/log/squid/cache.log
這個時候我們的代理服務(wù)器就基本上已經(jīng)搭建好了,接下來是設(shè)置代理測試驗(yàn)證
8.驗(yàn)證生效
8.1 Firefox 插件測試
首先,安裝 Proxy Switcher
-
其次,配置代理,如下圖:
-
這個時候在去訪問網(wǎng)站就會彈出一個輸入用戶密碼的訪問了
輸入用戶名和密碼,就是剛才上面設(shè)置的,這個時候通過百度搜索ip得到如下圖:
大功告成,以上就是基于squid如何搭建http代理服務(wù)器的詳細(xì)過程了!