1. 程式人生 > >squid傳統代理(附壓縮包文件)

squid傳統代理(附壓縮包文件)

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 . 將壓縮包掛載、解壓到服務器中,安裝編譯環境

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傳統代理(附壓縮包文件)