您好,登錄后才能下訂單哦!
說明:
當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中已經有客戶機需要訪問的頁面(紅色1 2 3 4),則直接將緩存中的頁面內容反饋給客戶機;如果緩存中沒有客戶機需要訪問的頁面(藍色1 2 3 4),則由代理服務器向Internet發送訪問請求,當獲得返回的web頁面以后,將網頁數據保存到緩存中并發送給客戶機。使用傳統代理的特點在于,客戶機的相關程序必須指定代理服務器的地址、端口等基本信息。下面進行傳統代理服務器的構建。
.
.
壓縮文件包
鏈接: https://pan.baidu.com/s/1GmD1SCoYeWYFi9W1BG_Z-Q 提取碼: kkcn
.
.
拓撲圖如下:
.
.
實驗環境:
.
.
一、編譯安裝squid
.
1 . 將壓縮包掛載、解壓到服務器中,安裝編譯環境
mkdir /ooo/ #創建掛載目錄
mount.cifs //192.168.201.1/gx /ooo/ #掛載壓縮包
cd /ooo/
tar zxvf squid-3.5.23.tar.gz -C /opt/ #解壓到/opt/
yum install gcc gcc-c++ make -y #安裝編譯環境
.
.
2 .手工編譯安裝
./configure --prefix=/usr/local/squid \ #指定安裝路徑
--sysconfdir=/etc \ #配置文件路徑
--enable-arp-acl \ #mack地址
--enable-linux-netfilter \ #內核過濾
--enable-linux-tproxy \ #透明模式
--enable-async-io=100 \ #io優化
--enable-err-language="Simplify_Chinese" \ #報錯顯示
--enable-underscore \ #允許有下劃鍵
--enable-poll \ #提升
--enable-gnuregex #支持正則表達式
make && make install
.
.
3 . 安裝完后,創建鏈接文件,用戶和組
ln -s /usr/local/squid/sbin/* /usr/local/sbin/ #將命令放入系統識別路徑下
useradd -M -s /sbin/nologin squid #創建一個用戶
chown -R squid.squid /usr/local/squid/var/ #更改目錄權限
.
.
4 . 修改squid配置文件,初始化緩存目錄,啟動服務,完成安裝
vim /etc/squid.conf
# And finally deny all other access to this proxy
http_access allow all #允許所有
http_access deny all
# Squid normally listens to port 3128
http_port 3128
cache_effective_user squid #添加 指定程序用戶
cache_effective_group squid #添加 指定賬號基本組
squid -z #緩存目錄初始化
squid #啟動服務
.
.
5 .編寫啟動腳本
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 "正在啟動 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 "正在關閉 squid..."
$0 start &> /dev/null
echo "正在啟動squid..."
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法:$0{start|stop|status|reload|check|restart}"
;;
esac
.
.
6 . 添加權限,名稱,檢查語法
chmod +x squid #添加執行權限
chkconfig --add squid #添加名稱,便于識別
service squid check #檢查語法
.
.
二、設置傳統代理服務器
.
1 . squid服務器的配置
vim /etc/squid.conf
.......
http_port 3128
cache_mem 64 MB #指定緩存功能所使用的內存空間大小,便于保持訪問較頻繁的WEB對象,容量最好為4的倍數,單位為MB,建議設為物理內存的1/4
reply_body_max_size 10 MB #允許用戶下載的最大文件大小,以字節為單位。默認設置0表示不進行限制
maximum_object_size 4096 KB #允許保存到緩存空間的最大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉發給用戶
.
.
2 . 重啟服務,清空防火墻
service squid restart #重啟服務
iptables -F #清空防火墻
setenforce 0 #關閉增強功能
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT #在input鏈中,針對tcp協議,目標端口3128,允許轉發
傳統代理完成
.
.
三、測試傳統代理
.
1 . 開啟測試端網頁
systemctl stop firewalld.service
setenforce 0 #關閉防火墻
yum install httpd -y #安裝http
systemctl start httpd #開啟服務
.
.
2 .win7端網絡設置為NAT模式,用瀏覽器訪問192.168.201.130
.
.
3 .網頁端查看訪問日志
cd /etc/httpd/logs/
vim access_log #查看訪問日志
可以看到來訪客戶端ip地址
.
.
4 . 此時設置代理訪問
打開瀏覽器-->工具-->intenet選項
.
.
連接-->局域網設置
.
.
設置ip地址與端口
.
.
此時再用瀏覽器訪問192.168.201.130,查看來訪日志
可以看到,訪問ip是代理服務器的ip地址,傳統代理服務器測試成功
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。