squid傳統代理(附壓縮包文件)
阿新 • • 發佈:2018-10-10
cef 初始化 ln -s mct 文件 alt cor ... 大小 說明:
當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中已經有客戶機需要訪問的頁面(紅色1 2 3 4),則直接將緩存中的頁面內容反饋給客戶機;如果緩存中沒有客戶機需要訪問的頁面(藍色1 2 3 4),則由代理服務器向Internet發送訪問請求,當獲得返回的web頁面以後,將網頁數據保存到緩存中並發送給客戶機。使用傳統代理的特點在於,客戶機的相關程序必須指定代理服務器的地址、端口等基本信息。下面進行傳統代理服務器的構建。
.
.
壓縮文件包
鏈接: https://pan.baidu.com/s/1GmD1SCoYeWYFi9W1BG_Z-Q 提取碼: kkcn
.
.
拓撲圖如下:
.
.
實驗環境:
.
.
一、編譯安裝squid
.
1 . 將壓縮包掛載、解壓到服務器中,安裝編譯環境
當客戶機通過代理來請求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
.
.
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地址,傳統代理服務器測試成功
squid傳統代理(附壓縮包文件)