安裝Squid代理服務(wù)及構(gòu)建傳統(tǒng)代理

博文大綱?
一、Squid服務(wù)概述?
二、安裝及運(yùn)行控制?
一、Squid服務(wù)概述作為應(yīng)用層的代理服務(wù)軟件,Squid主要提供緩存加速、應(yīng)用層過(guò)濾控制的功能。?
1、代理的工作機(jī)制當(dāng)客戶機(jī)通過(guò)代理來(lái)請(qǐng)求Web頁(yè)面時(shí),指定的代理服務(wù)器會(huì)先檢查自己的緩存,如果緩存中已經(jīng)有客戶機(jī)需要的頁(yè)面,則直接將緩存中的頁(yè)面內(nèi)容反饋給客戶機(jī);如果緩存中沒(méi)有客戶機(jī)要訪問(wèn)的頁(yè)面,則由代理服務(wù)器向Internet發(fā)送訪問(wèn)請(qǐng)求,獲得返回的Web頁(yè)面以后,將網(wǎng)頁(yè)數(shù)據(jù)保存到緩存中并發(fā)送給客戶機(jī),如下圖所示:?
由于客戶機(jī)的web訪問(wèn)請(qǐng)求實(shí)際上是squid代理服務(wù)器來(lái)代替完成的,從而可以隱藏了用戶的真實(shí)IP地址,起到一定的保護(hù)作用。另一方面,squid也可以針對(duì)要訪問(wèn)的目標(biāo)、客戶機(jī)的地址、訪問(wèn)的時(shí)間段進(jìn)行過(guò)濾控制。?
2、代理的基本類型傳統(tǒng)代理:也就是普通的代理服務(wù),需要我們客戶端在瀏覽器、聊天工具等一些程序中設(shè)置代理服務(wù)器的地址和端口,然后才能使用代理來(lái)訪問(wèn)網(wǎng)絡(luò),這種方式相比較而言比較麻煩,因?yàn)榭蛻魴C(jī)還需手動(dòng)指定代理服務(wù)器,所以一般用于Internet環(huán)境。?
透明代理:與傳統(tǒng)代理實(shí)現(xiàn)的功能是一樣的,區(qū)別在于客戶機(jī)不需要手動(dòng)指定代理服務(wù)器的地址和端口,而是通過(guò)默認(rèn)路由、防火墻策略將web訪問(wèn)重定向,實(shí)際上仍然交給代理服務(wù)器來(lái)處理,重定向的過(guò)程完全是由squid服務(wù)器進(jìn)行的,所以對(duì)于客戶機(jī)來(lái)說(shuō),甚至不知道自己使用了squid代理服務(wù),因此呢,我們稱之為透明模式。透明代理多用于局域網(wǎng)環(huán)境,如在Linux網(wǎng)關(guān)中啟用透明代理后,局域網(wǎng)主機(jī)無(wú)須進(jìn)行額外設(shè)置就能享受更好的上網(wǎng)速度。?
二、安裝及運(yùn)行控制所需設(shè)備:?
Windows客戶端一臺(tái);IP地址:192.168.100.102linux客戶端一臺(tái);IP地址:192.168.100.10squid服務(wù)器一臺(tái);?IP地址:192.168.100.20web服務(wù)器一臺(tái);IP地址:192.168.100.30所需的鏡像請(qǐng)?jiān)L問(wèn):https://pan.baidu.com/s/1-3jN_z-JqWg2X1Bpz0SHUw?
提取碼:ysxn?
1、安裝httpd[root@centos03 ~]# yum -y install httpd ???<!--安裝httpd服務(wù)-->[root@centos03 ~]# cd /var/www/html/ ???????<!--修改網(wǎng)站主頁(yè)的內(nèi)容-->[root@centos03 html]# ls -a. ?.. ?[root@centos03 html]# echo "www.accp.com" > index.html ??????<!--插入數(shù)據(jù)-->[root@centos03 ~]# systemctl start httpd ??????????<!--啟動(dòng)httpd服務(wù)-->[root@centos03 ~]# systemctl enable httpd ???????<!--設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)-->2、安裝linux命令行客戶機(jī)[root@centos01 ~]# yum -y install elinks ??????????<!--安裝elinks軟件,linux操作系統(tǒng)光盤(pán)自動(dòng)此軟件包-->[root@centos01 ~]# elinks http://192.168.100.30 ?<!--訪問(wèn)網(wǎng)站服務(wù)器是否可以訪問(wèn)到-->?
3、編譯安裝Squid[root@centos02 ~]# mount /dev/cdrom /mnt/ ?<!--掛載linux光盤(pán)-->[root@centos02 ~]# tar zxvf /mnt/squid-3.4.6.tar.gz -C /usr/src/ ??????????<!--解壓縮squid軟件包到/usr/src/目錄-->[root@centos02 squid-3.4.6]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language-Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex ?<!--配置squid-->[root@centos02 squid-3.4.6]# make && make install <!--編譯安裝squid-->上述配置項(xiàng)的具體作用如下:?
--prefix=/usr/local/squid?:指定安裝目錄;--sysconfdir=/etc?:?jiǎn)为?dú)將配置文件修改到其他目錄;--enable-linux-netfilter:使用內(nèi)核過(guò)濾;--enable-async-io=值:異步I/O,提升存儲(chǔ)性能;--enable-default-err-language=Simplify_Chinese?:錯(cuò)誤信息顯示語(yǔ)言;--disable-poll?與--enable-epoll:關(guān)閉默認(rèn)使用poll模式,開(kāi)啟epoll模式提提升性能;--enable-gunregex:使用GUN正則表達(dá)式;?
更多的配置項(xiàng)可以參考“./configure --help”;安裝完成后,創(chuàng)建鏈接文件、創(chuàng)建用戶和組?
[root@centos02 ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/[root@centos02 ~]# useradd -M -s /sbin/nologin squid [root@centos02 ~]# chown -R squid:squid /usr/local/squid/var/ 4、修改squid主配置文件?
[root@centos02 ~]# vim /etc/squid.conf ?<!--編輯squid主配置文件-->54 http_access allow all ?????????<!--允許所有人訪問(wèn)squid-->60 http_port 3128 ???????????<!--squid監(jiān)聽(tīng)的端口號(hào)-->61 cache_effective_user squid ?????<!--管理squid的賬戶-->62 cache_effective_group squid ?????<!--管理squid的組-->63 reply_body_max_size 10 MB <!--允許用戶下載最大數(shù)據(jù)10M-->68 coredump_dir /usr/local/squid/var/cache/squid ?<!--設(shè)置緩存位置-->[root@centos02 ~]# squid -k parse <!--檢查配置文件語(yǔ)法是否錯(cuò)誤-->5、創(chuàng)建squid管理服務(wù)腳本[root@centos02 ~]# vim /etc/init.d/squid ????<!--為了方便控制服務(wù),編寫(xiě)一個(gè)squid服務(wù)腳本,并添加為系統(tǒng)服務(wù), 腳本如下-->#!/bin/bash# chkconfig: 35 90 25# config file:/etc/squid.conf# pidfile: /usr/local/squid/var/run/squid.pid# Description: Squid - Internet object cache.PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" in ?start) ???????netstat -anpt | 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 ???????echo "正在關(guān)閉squid...";; ?status) ????[ -f $PID ] &> /dev/null ???????if [ $? -eq 0 ] ??????????then ????netstat -anpt | 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|restart|reload|check|status}"exit 1;;esac[root@centos02 ~]# chmod +x /etc/init.d/squid ?<!--腳本添加執(zhí)行權(quán)限-->[root@centos02 ~]# chkconfig --add squid ???<!--添加系統(tǒng)服務(wù)-->[root@centos02 ~]# chkconfig --level 35 squid on ??<!--設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)-->[root@centos02 ~]# /etc/init.d/squid start ???<!--啟動(dòng)squid服務(wù)-->正在啟動(dòng)squid...現(xiàn)在基于傳統(tǒng)代理的squid代理服務(wù)器已經(jīng)配置完成了?
6、Linux客戶端命令行使用代理服務(wù)器[root@centos01 ~]# vim /etc/profileHTTP_PROXY=http://192.168.100.20:3128 ?<!--為使用HTTP協(xié)議指定代理-->HTTPS_PROXY=http://192.168.100.20:3128 ?<!--為使用HTTPS協(xié)議指定代理-->FTP_PROXY=http://192.168.100.20:3128 ??<!--為使用FTP協(xié)議指定代理-->NO_PROXY=192.168.10.,192.168.20. ??<!--對(duì)兩個(gè)局域網(wǎng)段不使用代理-->export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY [root@centos01 ~]# source /etc/profile ???<!--應(yīng)用代理-->[root@centos01 ~]# elinks http://192.168.100.30 ??<!--客戶端訪問(wèn)網(wǎng)站服務(wù)器-->[root@centos03 ~]# tail -f /var/log/httpd/access_log ??????????????????????????????<!--網(wǎng)站服務(wù)器追蹤squid代理服務(wù)器的訪問(wèn)日志文件--> ???????????????????????????????????????????????????<!--請(qǐng)注意,所有跟蹤都是在訪問(wèn)之前先做好準(zhǔn)備的-->192.168.100.20 - - [18/Nov/2019:04:38:40 +0800] "GET / HTTP/1.1" 200 13 "-" "ELinks/0.12pre6 (textmode; Linux; 80x18-2)"7、Windows客戶機(jī)使用代理服務(wù)器1)網(wǎng)卡更換成同一塊網(wǎng)卡?
2)配置同網(wǎng)段IP地址?
3)配置代理服務(wù)器IP地址和端口號(hào)?
4)訪問(wèn)192.168.100.30測(cè)試是否成功?
5)網(wǎng)站服務(wù)器追蹤squid代理服務(wù)器的訪問(wèn)日志文件[root@centos03 ~]# tail -f /var/log/httpd/access_log ??????????????????????????????????????????????<!--請(qǐng)注意,所有跟蹤都是在訪問(wèn)之前先做好準(zhǔn)備的-->192.168.100.20 - - [18/Nov/2019:04:38:40 +0800] "GET / HTTP/1.1" 200 13 "-" "ELinks/0.12pre6 (textmode; Linux; 80x18-2)"192.168.100.20 - - [18/Nov/2019:05:18:03 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/