作為應(yīng)用層的代理服務(wù)軟件,squid主要提供緩存加速和應(yīng)用層過(guò)濾控制的功能。
為甘德等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及甘德網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、甘德網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
實(shí)驗(yàn)環(huán)境表:
1.編譯安裝Squid
配置Squid的編譯選項(xiàng)時(shí),將安裝目錄設(shè)置為/usr/local/squid,其他具體選項(xiàng)根據(jù)實(shí)際需要來(lái)確定,配置前可參考./configure --help給出的說(shuō)明。
tar zxvf squid-3.4.6.tar.gz -C /opt/
cd /opt/squid-3.4.6
./configure --prefix=/usr/local/squid \ #安裝目錄
--sysconfdir=/etc \ #單獨(dú)將配置文件修改到其他目錄
--enable-arp-acl \ #直接通過(guò)客戶端MAC進(jìn)行管理,防止客戶端使用IP欺騙
--enable-linux-netfilter \ #使用內(nèi)核過(guò)濾
--enable-linux-tproxy \ #支持透明模式
--enable-async-io=100 \ #異步I/O,提升存儲(chǔ)性能。
--enable-err-language="Simplify_Chinese" \ #錯(cuò)誤信息的顯示語(yǔ)言
--enable-underscore \ #允許URL中有下劃線
--enable-poll \ #使用poll()模式,提升性能。
--enable-gnuregex #使用GNU正則表達(dá)式
make && make install
安裝完成后,創(chuàng)建鏈接文件、創(chuàng)建用戶和組。
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/
2.squid的配置文件
squid服務(wù)的配置文件位于/etc/squid.conf,充分了解配置行的作用將有助于管理員根據(jù)實(shí)際情況靈活地配置代理服務(wù)。
vim /etc/squid.conf
http_port 3128 #用來(lái)指定代理服務(wù)監(jiān)聽的地址和端口(默認(rèn)端口號(hào)為3128)
cache_effective_user squid #添加 指定程序用戶
cache_effective_group squid #添加 指定賬號(hào)基本組
3.squid運(yùn)行控制
(1)檢查配置文件的語(yǔ)法是否正確
squid -k parse
(2)啟動(dòng)、停止squid
第一次啟動(dòng)squid服務(wù)時(shí),會(huì)自動(dòng)初始化緩存目錄。在沒(méi)有可用的squid服務(wù)器腳本的情況下,也可以直接調(diào)用squid程序來(lái)啟動(dòng)服務(wù),這時(shí)需要先進(jìn)行初始化。
squid -z //初始化緩存目錄
squid //啟動(dòng)服務(wù)
(3)使用squid服務(wù)腳本
為了使squid服務(wù)的啟動(dòng)、停止、重載等操作更加方便,可以編寫squid服務(wù)腳本,并使用chkconfig和service工具來(lái)進(jìn)行管理。
cd /etc/init.d/
vim squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
start)
netstat -natp | grep squid &> /dev/null
if [ $? -eq 0 ]
then
echo "squid is running"
else
echo "正在啟動(dòng) squid..."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/null
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -natp | grep squid
else
echo "squid is not running"
fi
;;
restart)
$0 stop &> /dev/null
echo "正在關(guān)閉 squid..."
$0 start &> /dev/null
echo "正在啟動(dòng) squid..."
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法:$0{start|stop|status|reload|check|restart}"
;;
esac
chmod +x squid
chkconfig --add squid #添加為系統(tǒng)服務(wù)
chkconfig --level 35 squid on
1.squid服務(wù)器的配置
配置squid實(shí)現(xiàn)傳統(tǒng)代理服務(wù)時(shí),需要注意添加http_access allowall訪問(wèn)策略,以便允許任意客戶機(jī)使用代理服務(wù)。
1)修改squid.conf配置文件
[root@localhost init.d]# vim /etc/squid.conf
http_access allow all
http_access deny all
http_port 3128
cache_mem 64 MB #指定緩存功能所使用的內(nèi)存空間大小,便于保持訪問(wèn)較頻繁的WEB對(duì)象,容量最好為4的倍數(shù),單位為MB,建議設(shè)為物理內(nèi)存的1/4
reply_body_max_size 10 MB #允許用戶下載的最大文件大小,以字節(jié)為單位。默認(rèn)設(shè)置0表示不進(jìn)行限制
maximum_object_size 4096 KB #允許保存到緩存空間的最大對(duì)象大小,以KB為單位,超過(guò)大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶
2)在防火墻上添加允許策略:
[root@localhost init.d]# iptables -F
[root@localhost init.d]# setenforce 0
[root@localhost init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
[root@localhost init.d]# service squid reload #重新加載
2.客戶機(jī)的代理配置
在Windows系統(tǒng)中開啟瀏覽器
Internet選項(xiàng)---》連接----》局域網(wǎng)設(shè)置----ip:squid服務(wù)器地址 端口:3128
地址欄輸入web服務(wù)器地址。
3.代理服務(wù)器的驗(yàn)證
在客戶機(jī)中通過(guò)瀏覽器訪問(wèn)目標(biāo)Web服務(wù)器網(wǎng)站http://192.168.126.178/,然后觀察squid代理服務(wù)器,Web服務(wù)器的訪問(wèn)日志,以驗(yàn)證代理服務(wù)是否發(fā)揮作用。
1)查看squid訪問(wèn)日志的新增記錄
在squid代理服務(wù)器中,通過(guò)跟蹤squid服務(wù)的訪問(wèn)日志文件,應(yīng)該能夠發(fā)現(xiàn)客戶機(jī)192.168.126.177訪問(wèn)網(wǎng)站服務(wù)器192.168.126.178的記錄。
[root@localhost init.d]# tail /usr/local/squid/var/logs/access.log
1532758490.972 5 192.168.126.177 TCP_MISS/404 512 GET http://192.168.126.178/noindex/css/fonts/Light/OpenSans-Light.eot? - HIER_DIRECT/192.168.126.178 text/html
1532758490.974 5 192.168.126.177 TCP_MISS/404 524 GET http://192.168.126.178/noindex/css/fonts/LightItalic/OpenSans-LightItalic.eot? - HIER_DIRECT/192.168.126.178 text/html
2)查看Web訪問(wèn)日志的新增記錄
在被訪問(wèn)的Web服務(wù)器中,通過(guò)跟蹤httpd服務(wù)器的訪問(wèn)日志文件,應(yīng)該能夠發(fā)現(xiàn)來(lái)在代理服務(wù)器192.168.126.138的訪問(wèn)記錄。說(shuō)明當(dāng)前客戶機(jī)使用代理后,Web服務(wù)器并不知道客戶機(jī)的真實(shí)地址,實(shí)際上是由代理服務(wù)器在替它訪問(wèn)。
[root@localhost ~]# cd /etc/httpd/logs/
[root@localhost logs]# ls
access_log error_log
[root@localhost logs]# cat access_log
192.168.126.138 - - [28/Jul/2018:14:14:50 +0800] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" //
1.配置Squid支持透明代理
1)在squid代理服務(wù)器上添加雙網(wǎng)卡,分別是內(nèi)網(wǎng)地址192.168.100.1和外網(wǎng)地址12.0.0.1。Web服務(wù)器地址改為12.0.0.12外網(wǎng)地址,客戶端地址改為192.168.100.100內(nèi)網(wǎng)地址。
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #內(nèi)網(wǎng)地址
inet 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #外網(wǎng)地址
inet 12.0.0.1 netmask 255.255.255.0 broadcast 12.0.0.255
2)修改squid的配置文件,在http_port配置上加上transparent(透明)選項(xiàng),就可以支持透明代理了。
[root@localhost network-scripts]# vim /etc/squid.conf
http_port 192.168.100.1:3128 transparent #只在其中一個(gè)IP地址上提供服務(wù)
[root@localhost network-scripts]# service squid reload
2.設(shè)置iptables的重定向策略
防火墻做重定向操作,將訪問(wèn)本機(jī)80、443端口的請(qǐng)求重定向到3128端口
[root@localhost network-scripts]# iptables -F
[root@localhost network-scripts]# iptables -F -t nat #清除防火墻規(guī)則
[root@localhost network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@localhost network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@localhost network-scripts]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
3.驗(yàn)證透明代理
在客戶機(jī)192.168.100.100中通過(guò)瀏覽器訪問(wèn)目標(biāo)網(wǎng)站http://12.0.0.12/,然后觀察squid代理服務(wù)器、Web服務(wù)器的訪問(wèn)日志,以驗(yàn)證透明代理是否發(fā)揮作用。
squid代理服務(wù)器的訪問(wèn)日志:
[root@localhost network-scripts]# tail /usr/local/squid/var/logs/access.log
1532761302.140 3 192.168.100.100 TCP_MISS/404 512 GET http://12.0.0.12/noindex/css/fonts/Light/OpenSans-Light.eot? - ORIGINAL_DST/12.0.0.12 text/html
1532761302.143 2 192.168.100.100 TCP_MISS/404 524 GET http://12.0.0.12/noindex/css/fonts/LightItalic/OpenSans-LightItalic.eot? - ORIGINAL_DST/12.0.0.12 text/html
1532761302.146 2 192.168.100.100 TCP_MISS/404 516 GET http://12.0.0.12/noindex/css/fonts/Regular/OpenSans-Regular.eot? - ORIGINAL_DST/12.0.0.12 text/html
Web服務(wù)器的訪問(wèn)日志:
[root@localhost ~]# cd /var/log/httpd/
[root@localhost httpd]# vim access_log
12.0.0.1 - - [28/Jul/2018:15:06:43 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://12.0.0.12/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
12.0.0.1 - - [28/Jul/2018:15:06:43 +0800] "GET /noindex/css/fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot? HTTP/1.1" 404 260 "http://12.0.0.12/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
代理成功
網(wǎng)頁(yè)名稱:在CentOS7上部署squid緩存服務(wù)器及代理功能
網(wǎng)址分享:http://www.rwnh.cn/article48/jijjhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、外貿(mào)建站、移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)