【實戰(zhàn)】Squid緩存服務(wù)器之傳統(tǒng)代理+透明代理-創(chuàng)新互聯(lián)

目錄:

1· Squid代理的概述原理
2· 代理的基本類型
3· Squid 服務(wù)腳本
4· 構(gòu)建代理服務(wù)器(傳統(tǒng)代理、透明代理)
5· 總結(jié)

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比昭化網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式昭化網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昭化地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

Squid代理的概述原理

1)代理的工作機制


1.什么是 Squid ?

Squid是一個高性能的代理緩存服務(wù)器,Squid支持FTP、gopher、HTTPS和HTTP協(xié)議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅(qū)動的進程來處理所有的客戶端請求。


2·緩存的工作原理

squid 是工作在應(yīng)用層的代理服務(wù)軟件,squid 主要提供緩存加速和應(yīng)用層過濾控制的功能。在這里舉個列子:當(dāng)客戶機通過代理來請求 web 頁面時,那么代理服務(wù)器會檢查自己有沒有你請求的頁面,有的話就直接發(fā)送給客戶端,沒有的話,代理服務(wù)器就會向web發(fā)送請求,當(dāng)獲得了web頁面后,就會把數(shù)據(jù)保存到緩存中,并發(fā)給客戶端。


下圖是代理服務(wù)的緩存機制過程:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


2)·HTTP 代理的緩存說明:


HTTP代理的緩存加速對象主要針對文字、圖像等靜態(tài) Web 元素。使用緩存機制后,客戶端在訪問 同一 Web 元素,就可以直接從代理服務(wù)器的緩存中得到你想要的。這樣做的好處就減少 對 Web 請求的過程,提高了客戶端的訪問速度


還有就是客戶機訪問的 Web 訪問請求實際上是由代理服務(wù)器帶完成的,這樣就可以隱藏用戶的真實 IP,有一定的保護作用,代理服務(wù)器還有機會對訪問的目標(biāo)、客戶機的地址、訪問的時間段進行過濾控制。


代理的基本類型與應(yīng)用方向:

1)傳統(tǒng)代理:

也就是普通的代理服務(wù),比如我們用的瀏覽器、QQ聊天工具等需要手動設(shè)置代理服務(wù)器的地址和端口,才能使用代理服務(wù)的。


下圖是瀏覽器設(shè)置代理服務(wù)器地址圖:


【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


對以上圖說明:每個軟件或者是瀏覽器設(shè)置代理服務(wù)器的位子是不一樣的,只要找到選項,幾乎就在里面,設(shè)好代理服務(wù)器的地址與端口即可。


2)應(yīng)用方向

傳統(tǒng)代理:多用于 Internet 環(huán)境,QQ 程序、下載工具等,可以規(guī)避服務(wù)器的并發(fā)連接。


透明代理:多用于局域網(wǎng)環(huán)境,比如在 Linux 網(wǎng)關(guān)中啟用代理,局域網(wǎng)主機就不用再進行額外的設(shè)置就能更快的訪問。


傳統(tǒng)代理服務(wù)器部署

部署前說明:

1·部署環(huán)境是:CenOS 7.4


2·部署方式:手工編譯, 版本為 Squid 3.4.6


3·提供源碼包下載地址:Squid 緩存源碼包,需要請點擊 密碼:63xn


傳統(tǒng)代理服務(wù)器拓撲圖如下:


【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


開始部署:
1)編譯安裝 Squid,現(xiàn)在是手工編譯的,在這之前我們需要把源碼包下載,進行解壓,安裝編譯環(huán)境、指定安裝路徑與功能模塊等

[root@localhost ~]# tar zxvf squid-3.4.6.tar.gz -C /opt/ ----(解壓到 /opt 目錄下


[root@localhost ~]# yum install gcc gcc-c++ make -y ----(安裝編譯環(huán)境


[root@localhost ~]# cd /opt/squid-3.4.6/
[root@localhost squid-3.4.6]# ./configure --prefix=/usr/local/squid \

--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tpoxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex


2)對以上模塊解釋:

1·指定安裝路徑
2·單獨將配置文件放在 /etc
3·可以在規(guī)則中設(shè)置為直接通過客戶端MAC進行管理,防止客戶端使用IP欺騙
4·使用內(nèi)核過濾
5·支持透明模式
6·異步 I/O,提升存儲性能
7·錯誤信息的顯示語言
8·允許 URL 中有下劃線
9·使用POLL()模式,提升性能
10·使用GNU 正則表達式


[root@localhost squid-3.4.6]# make && make install ----(制作、編譯安裝,這里等待的時間需要稍長一點,請耐心等待


3)安裝完畢,現(xiàn)在需要對 Squid 進行一些優(yōu)化,使以后我們用起來更加符合日常日操作習(xí)慣


[root@localhost squid-3.4.6]# ln -s /usr/local/squid/sbin/ /usr/local/sbin ——(創(chuàng)建軟連接)


[root@localhost squid-3.4.6]# useradd -M -s /sbin/nologin squid ---(創(chuàng)建管理用戶)


[root@localhost squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/


4)修改主配置文件,有圖有文字說明:

[root@localhost squid-3.4.6]# vim /etc/squid.conf ----(在編譯的時候就指定了主配置文件放在 /etc 下


修改如下內(nèi)容:

http_access allow all -----(需要添加,意思是運行所有人訪問http,這里相當(dāng)于是一個ACL訪問控制列表
cache_effective_user squid ------(添加指定的程序用戶
cache_effective_group squid ------(添加 指定的賬號基本組


下圖是配置文件添加內(nèi)容:


【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


檢查配置文件語法,看看是否有報錯:

[root@localhost squid-3.4.6]# squid -k parse ---(檢查語法,有報錯問題幾乎是配置文件的問題)


編寫 Squid 啟動腳本

[root@localhost squid-3.4.6]# vim /etc/init.d/squid


編寫內(nèi)容如下:


#!/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 -antp | grep squid &> /dev/null
if [ $? -eq 0 ]
then
echo "squid is running"
else
echo "正在啟動 squid...."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/nulll
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -antp | grep squid
else
echo "squid is not running"
fi
;;
restart)
$0 stop &> /dev/null
echo "正在關(guān)閉 squid..."
$0 start &> /dev/null
echo "正在啟動 squid..."
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法: $0{start|stop|status|reload|check|restart}"
;;
esac


優(yōu)化 squid 與 啟動腳本

[root@localhost squid-3.4.6]# chmod +x /etc/init.d/squid ---(給腳本執(zhí)行權(quán)限
[root@localhost squid-3.4.6]# chkconfig --add squid ----(加入系統(tǒng)服務(wù)
[root@localhost squid-3.4.6]# chkconfig --level 35 squid on ----(設(shè)置開機自啟


到此 Squid 服務(wù)基本配置完成。接下來我們需要先來做傳統(tǒng)代理模式


[root@localhost squid-3.4.6]# vim /etc/squid.conf ---(修改配置文件)


添加內(nèi)容如下:
cache_mem 64 MB ---(#指定緩存功能使用的內(nèi)存空間大小,以便于保持訪問較頻繁的web對象,容量最好為4的倍數(shù),單位為MB,建議設(shè)為物理內(nèi)存的1/4)


reply_body_max_size 10 MB ----(允許用戶下載的大文件大小,以字節(jié)為單位,默認0,表示不限制


maximum_object_size 4096 KB ---(允許保存到緩存空間的大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶)


下圖是修改后的配置文件:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


啟動前準(zhǔn)備:


[root@localhost squid-3.4.6]# squid -k parse ---(再次檢查配置文件語法


[root@localhost squid-3.4.6]# squid -z ---(初始化緩存目錄


[root@localhost squid-3.4.6]# iptables -F ----(清空防火墻規(guī)則,便于之后我們自己填寫策略)
[root@localhost squid-3.4.6]# iptables -t nat -F


[root@localhost squid-3.4.6]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT ---(添加防火墻策略:允許 tcp 協(xié)議 3128端口通過)‘
[root@localhost squid-3.4.6]# setenforce 0 ---(關(guān)閉增強功能)


[root@localhost squid-3.4.6]# service squid start ----(啟動服務(wù))
正在啟動 squid...


[root@localhost squid-3.4.6]# netstat -antp | grep 3128 ----(查看啟動端口
tcp6 0 0 :::3128 :::* LISTEN 36813/(squid-1)


驗證傳統(tǒng)代理服務(wù)器:

方法:搭建 Apache 網(wǎng)站服務(wù)器,用 windows 客戶端 IE 瀏覽器設(shè)置代理服務(wù)器,訪問 Apache 網(wǎng)站服務(wù)器,然后查看Apache 日志文件,查看是誰訪問的Apache。如果是代理服務(wù)器說明我們部署成功。


1)在另外一臺服務(wù)器上搭建 Apache 服務(wù)器:


[root@localhost ~]# yum install httpd -y ---(注意這里是在其他服務(wù)器上安裝Apache


[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start httpd.service


2)在客戶機上給 IE 瀏覽器設(shè)置 Squid 代理服務(wù)器的地址與端口


這里用圖表示:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


開始訪問 apache 網(wǎng)站服務(wù)器:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


以上圖說明:訪問成功,但是我們需要知道是誰去訪問的,所以現(xiàn)在需要看看 apache 的日志文件。


下圖是 Apache 的日志文件:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


上圖說明:傳統(tǒng)代理服務(wù)器部署成功!


透明代理部署:

透明代理提供的服務(wù)功能與傳統(tǒng)代理是一致的,但是其 ” 透明 “ 的實現(xiàn)依賴默認路由和防火墻的重定向策略。


在Linux 網(wǎng)關(guān)上,構(gòu)架squid 為客戶機訪問 Internet 提供代理服務(wù)
在所有的局域網(wǎng)客戶機上,只需要爭取設(shè)置IP地址、默認網(wǎng)關(guān),而不需要手動指定代理服務(wù)器的地址、端口等信息。


根據(jù)以上的理論,所以我們應(yīng)該把 Squid 代理服務(wù)器 再添加一塊新的網(wǎng)卡,透明代理的拓撲圖如下:
【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


開始部署:

[root@localhost ~]# vim /etc/squid.conf ---(修改配置文件


修改內(nèi)容如下:
http_port 192.168.100.1:3128 transparent ----(修改監(jiān)聽地址,因為是內(nèi)網(wǎng)需要訪問外網(wǎng),所以監(jiān)聽的是內(nèi)網(wǎng) transparent:意思就是透明模式


配置文件修改得不多,接下來就是需要設(shè)置 iptables 的重定向策略:

[root@localhost ~]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128


[root@localhost ~]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128


開啟路由轉(zhuǎn)發(fā)功能:
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward


重啟 squid 代理服務(wù)器

[root@localhost ~]# service squid restart
正在關(guān)閉 squid...
正在啟動 squid...


透明模式驗證:
說明:透明模式 是不需要手動設(shè)置代理服器的,訪問如下圖:


【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


下圖是apache 日志分析,看看是那一臺主機訪問的web


【實戰(zhàn)】Squid 緩存服務(wù)器 之 傳統(tǒng)代理 + 透明代理


結(jié)論:如上圖,是不需要手動設(shè)置代理服務(wù)器,訪問web服務(wù)器是由代理服務(wù)器去訪問!


如果要再Linux客戶機的命令行界面中使用代理服務(wù)器(比如:elinks 網(wǎng)頁瀏覽器、wget 下載工具),必須通過環(huán)境變量來指定代理服務(wù)器的地址、端口等信息。


[root@localhost ~]# vim /etc/profile ---(添加如下內(nèi)容到環(huán)境變量中)


添加如下內(nèi)容:

HTTP_PROXY=http:192.168.100.50:3128 ---(為使用HTTP協(xié)議指定代理)
HTTPS_PROXY=http:192.168.100.50:3128 ---(為使用HTTPS協(xié)議指定代理)
FTP_PROXY=http:192.168.100.50:3128 ----(為使用FTP協(xié)議指定代理)
NO_RPOXY=192.168.20.,192.168.30. ---(對兩個局域網(wǎng)段不使用代理)
export HTTP_PROXY HTTPS_PROXY FRP_PROXY NO_PROXY**

[root@localhost ~]# source /etc/profile


總結(jié):

1·要知道,我們訪問的是web服務(wù)器,如果 Squid緩存代理服務(wù)器有訪問的數(shù)據(jù),代理服務(wù)器就會直接給予回饋,如果沒有,squid 就會去找web服務(wù)器要數(shù)據(jù),再返回給客戶端。


2·代理的基本類型有:傳統(tǒng)代理、透明代理。之間大的區(qū)別是:需要手動設(shè)置代理服務(wù)器的地址和端口。


3·排錯可能性:·訪問的時候,web服務(wù)器的防火墻沒有關(guān)閉;防火墻策略寫入有誤、修改配置文件后是否重啟服務(wù),查看端口服務(wù)是否啟動。


另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:【實戰(zhàn)】Squid緩存服務(wù)器之傳統(tǒng)代理+透明代理-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article14/psode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、虛擬主機、電子商務(wù)、響應(yīng)式網(wǎng)站、云服務(wù)器、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)