您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Squid傳統(tǒng)代理與透明代理的本質(zhì)和區(qū)別是怎樣的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
(1)Squid是一個(gè)高性能的代理緩存服務(wù)器,Squid支持FTP、gopher、HTTPS和HTTP協(xié)議。和一般的代理緩存軟件不同,Squid用一個(gè)單獨(dú)的、非模塊化的、I/O驅(qū)動(dòng)的進(jìn)程來處理所有的客戶端請求。
(2)Squid運(yùn)行在什么系統(tǒng)上?
Squid可運(yùn)行在大多數(shù)Unix和OS/2版本的系統(tǒng)之上,已知的可工作的有:Windows,AIX,Digital Unix,F(xiàn)reeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris
(3)Squid的下載和獲?。?br/>squid在諸多unix like系統(tǒng)上都有軟件庫的提供,比如在ubuntu可以使用apt install squid進(jìn)行安裝,也可以到squid的官網(wǎng)直接下載二進(jìn)制的編譯好的軟件包,下載地址。
web 代理的工作機(jī)制:緩存網(wǎng)頁對象,減少重復(fù)請求。
1、當(dāng)我們客戶機(jī)通過squid代理去訪問web頁面時(shí),指定的代理服務(wù)器會(huì)先檢查自己的緩存,若是緩存中有我們客戶機(jī)需要的頁面,那么squid服務(wù)器將直接把緩存中的頁面內(nèi)容返回給客戶機(jī),如果緩存中沒有客戶端請求的頁面,那么squid代理服務(wù)器就會(huì)向internet發(fā)送訪問請求,獲得返回的web頁面后,將網(wǎng)頁的數(shù)據(jù)保存到緩存中并發(fā)送給客戶機(jī)。
2、由于客戶機(jī)的web訪問請求實(shí)際上是squid代理服務(wù)器來代替完成的,所以隱藏了用戶的真實(shí)IP地址,從而起到一定的保護(hù)作用。
另一方面,squid也可以針對要訪問的目標(biāo)、客戶機(jī)的地址、訪問的時(shí)間段進(jìn)行過濾控制。
(1)代理基本類型:
1、傳統(tǒng)代理:也就是普通的代理服務(wù),需要我們客戶端在瀏覽器、聊天工具等一些程序中設(shè)置代理服務(wù)器的地址和端口,然后才能使用代理來訪問網(wǎng)絡(luò),這種方式相比較而言比較麻煩,因?yàn)榭蛻魴C(jī)還需手動(dòng)指定代理服務(wù)器,所以一般用于Internet環(huán)境。
2、透明代理:與傳統(tǒng)代理實(shí)現(xiàn)的功能是一樣的,區(qū)別在于客戶機(jī)不需要手動(dòng)指定代理服務(wù)器的地址和端口,而是通過默認(rèn)路由、防火墻策略將web訪問重定向,實(shí)際上仍然交給代理服務(wù)器來處理,重定向的過程完全是由squid服務(wù)器進(jìn)行的,所以對于客戶機(jī)來說,甚至不知道自己使用了squid代理服務(wù),因此呢,我們稱之為透明模式。
透明代理多用于局域網(wǎng)環(huán)境,如在Linux網(wǎng)關(guān)中啟用透明代理后,局域網(wǎng)主機(jī)無須進(jìn)行額外設(shè)置就能享受更好的上網(wǎng)速度。
(2)使用代理的好處:
1、提高web訪問速度;
2、隱藏客戶機(jī)的真實(shí) IP地址
(1)解壓縮包:
tar zxvf squid-3.4.6.tar.gz -C /opt/
(2)安裝編譯工具:
yum install gcc gcc-c++ make -y
(3)編譯:
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex
(4)安裝
install && make install
(5)方便管理,可以創(chuàng)建軟連接
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
(6)創(chuàng)建用戶 squid
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/
//授權(quán)
(7)修改配置文件
vim /etc/squid.conf
添加以下代碼:
http_access allow all
cache_effective_user squid //添加 指定程序用戶
cache_effective_group squid //添加 指定賬戶基本組
(8)檢查
squid -k parse //檢查配置文件語法
squid -z //初始化緩存目錄
squid //啟動(dòng)服務(wù)
檢查端口查看服務(wù)是否正常開啟:
squid
netstat -ntap | grep 3128
(9)編寫啟動(dòng)腳本:
1、編寫腳本 目錄:/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
2、添加執(zhí)行權(quán)限
chmod +x squid //添加執(zhí)行權(quán)限
chkconfig --add squid //便于service識(shí)別
chkconfig --level 35 squid on //設(shè)置開機(jī)自啟動(dòng)
3、關(guān)閉、開啟服務(wù)
service squid stop
service squid start
Web服務(wù)器
192.168.220.136
代理服務(wù)器
192.168.220.131
客戶機(jī)
192.168.220.129
第一步:編輯配置文件 /etc/squid.conf
cache_mem 64 MB //指定緩存功能所使用的內(nèi)存空間大小
reply_body_max_size 10 MB //允許用戶下載的最大文件大小
maximum_object_size 4096 KB //允許保存到緩存空間的最大對象大小
第二步:制定防火墻規(guī)則
iptables -F //清除所有規(guī)則來暫時(shí)停止防火墻
setenforce 0
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT //允許目標(biāo)端口3128做轉(zhuǎn)發(fā)
第三步:客戶機(jī)瀏覽器設(shè)置代理服務(wù)
(1)打開瀏覽器 → 工具 → Internet 選項(xiàng) → 連接 → 局域網(wǎng)設(shè)置
(2)瀏覽器訪問 web服務(wù)器的IP地址,多刷新幾次,由于我們設(shè)置了代理服務(wù),其實(shí)訪問網(wǎng)站這個(gè)請求,是代理服務(wù)器幫我們完成的,為了驗(yàn)證,可以查看 web服務(wù)器的日志文件,就能知道訪問的 ip地址是客戶機(jī)還是代理服務(wù)器的。
查看 /etc/httpd/logs 中的日志文件,access_log ,以下是部分截圖:
可以看出都是由 代理服務(wù)器過來訪問網(wǎng)頁的,而非客戶機(jī),這也起到了隱藏客戶機(jī)真實(shí) IP地址的目的。
代理服務(wù)器(虛擬機(jī))配置雙網(wǎng)卡:ens33(內(nèi)網(wǎng)卡);ens36(外網(wǎng)卡)
squid 代理服務(wù)器
內(nèi)網(wǎng):192.168.100.1;外網(wǎng):12.0.0.1
web服務(wù)器:12.0.0.12
客戶機(jī):192.168.100.50
第一步:用戶機(jī)瀏覽器取消局域網(wǎng)設(shè)置
第二步:配置代理服務(wù)器 squid
(1)開啟路由轉(zhuǎn)發(fā)功能:
echo "1" > /proc/sys/net/ipv4/ip_forward
(2)編輯配置文件 /etc/squid.conf
修改監(jiān)聽地址:
http_port 192.168.100.1:3128 transparent
(3)添加策略:
iptables -F
iptables -t nat -F //重新設(shè)置防火墻
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
//端口重定向到3128
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT //開發(fā)3128端口
(4)重啟服務(wù):
service squid restart
第三步:驗(yàn)證
1、在客戶機(jī)瀏覽器上訪問 web 服務(wù)器網(wǎng)站
2、在 web 服務(wù)器的日志文件,查看是哪個(gè)IP地址來訪的:
/etc/httpd/logs/access_log , 下面是部分截圖:
可以看出是 squid代理服務(wù)器的外網(wǎng)卡的ip地址。
以上就是Squid傳統(tǒng)代理與透明代理的本質(zhì)和區(qū)別是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。