Squid傳統代理與透明代理構建

1、緩存代理概述

1.緩存代理概述linux

做爲應用層的代理服務軟件,Squid主要提供緩存加速和應用層過濾控制的功能。正則表達式

2.代理的工做機制vim

當客戶機經過代理來請求Web頁面時,指定的代理服務器會檢查本身的緩存,若是緩存中已經存在客戶機須要訪問的頁面,則之間將緩存中的頁面內容反饋給客戶機;若代理服務器中的緩存中沒有客戶機須要訪問的頁面,則由代理服務器向Internet發送訪問請求,再將得到的頁面數據保存到緩存中,併發送給客戶機.瀏覽器

2、手工編譯安裝squid

1.解壓縮squid安裝文件到/opt緩存

tar zxvf squid-3.5.28.tar.gz -C /opt

2.配置squid的編譯選項bash

cd /opt/squid-3.5.28/
[root@promote squid-3.5.28]# ./configure --prefix=/usr/local/squid \     //指定安裝目錄
> --sysconfdir=/etc \     //單獨將配置文件修改到其餘目錄
> --enable-arp-acl \    
> --enable-linux-netfilter \    //使用內核過濾
> --enable-linux-tproxy \       //支持透明模式
> --enable-async-io=100 \       //異步I/O
> --enable-err-language="Simplify_Chinese" \  //錯誤提示信息的語言
> --enable-underscore \    //容許url中有下劃線
> --enable-poll \         //使用poll()模式,提高性能
> --enable-gnuregex    //使用gun正則表達式
make && make install

3.將squid程序命令建立軟連接到系統命令下服務器

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

4.添加用戶併發

useradd -M -s /sbin/nologin squid

5.更改所屬主與所屬組異步

chown -R squid.squid /usr/local/squid/var/

6.編輯squid配置文件,
vim /etc/squid.confasync

cache_effective_user squid        #添加   指定程序用戶
cache_effective_group squid       #添加   指定帳號基本組
coredump_dir /usr/local/squid/var/cache/squid
squid -k parse   //檢查配置文件語法

squid -z   //初始化緩存目錄

squid    //啓動服務

查看服務是否開啓

netstat -natp | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      84346/(squid-1)

7.建立squid腳本文件,更好的管理squid服務

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

chmod +x squid //給腳本添加可執行權限

8.添加爲系統服務並設置開機自啓動

chkconfig --add squid
chkconfig --level 35 squid on

此時咱們可使用squid腳原本啓動、中止、重啓和重載suqid服務器了。

3、傳統代理構建

傳統代理案例環境

角色 ip地址 安裝服務
squid服務器 192.168.174.209 suqid服務
httpd服務器 192.168.174.208 httpd服務
win7測試機 192.168.174.129 null

1.squid代理服務器的配置

(1)編輯suqid.conf 配置文件

cache_mem 64 MB   #指定緩存功能所使用的內存空間大小,便於保持訪問較頻繁的WEB對象,容量最好爲4的倍數,單位爲MB,建議設爲物理內存的1/4
reply_body_max_size 10 MB    #容許用戶下載的最大文件大小,以字節爲單位。默認設置0表示不進行限制
maximum_object_size 4096 KB    #容許保存到緩存空間的最大對象大小,以KB爲單位,超過大小限制的文件將不被緩存,而是直接轉發給用戶

重啓squid服務

service squid restart
正在關閉 squid...
正在啓動 squid...

(2)添加防火牆策略

[root@promote init.d]# iptables -F
[root@promote init.d]# setenforce 0
[root@promote init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

重載suqid服務

[root@promote init.d]# service squid reload

2.在http的服務器上安裝httpd服務

(1)關閉防火牆

[root@promote ~]# systemctl stop firewalld.service 
[root@promote ~]# setenforce 0

(2)安裝httpd

[root@promote ~]# yum install httpd -y

(3)開啓httpd服務

[root@promote ~]# systemctl start httpd.service
[root@promote ~]# netstat -natp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      7975/httpd

3.win7客戶機上進行代理配置

(1)在Ie瀏覽器中,選擇「工具」一>「Internet 選項」,彈出「Internet選項」對話框,
在「鏈接」選項卡中的「局域網(LAN)設置」選項組中單擊「局域網設置」按鈕,彈出「局域網(LAN)設置」對話框,
勾選"爲LAN使用代理服務器",在地址欄框中輸入squid代理服務器的地址,端口爲3128
Squid傳統代理與透明代理構建

(2)訪問httpd服務器的網站
Squid傳統代理與透明代理構建

4.查看httpd服務器訪問日誌的新增記錄

cd /etc/httpd/logs
vim access_log

Squid傳統代理與透明代理構建

4、構建透明代理

透明代理案例環境
角色 ip地址 安裝服務
squid服務器 ens32 192.168.100.1 ens34 12.0.0.1 suqid服務
httpd服務器 12.0.0.10 httpd服務
win7測試機 192.168.100.100 null

1.squid服務器配置
(1)編輯squid.conf配置文件

http_port 192.168.100.1:3128 transparent

重載服務

service squid reload

(2)添加防火牆策略

[root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@localhost ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

2.win7測試機瀏覽器配置

Squid傳統代理與透明代理構建

3.查看htpt服務器的日誌訪問
Squid傳統代理與透明代理構建

相關文章
相關標籤/搜索