Squid ---- 傳統代理模式

Squid ---- 傳統代理模式

一:定義

​ Squid傳統代理是普通的代理服務,需要客戶端在瀏覽器、聊天工具等一些程序中設置代理服務器的地址和端口,然後才能使用代理來訪問網絡,這種方式相比較而言比較麻煩,因爲客戶機還需手動指定代理服務器,所以一般用於Internet環境 。

二:代理的作用

​ squid作爲一款應用層的代理服務軟件,主要提供了緩存加速、應用層過濾的功能;提高web訪問速度;隱藏客戶機的真實 IP地址,起到一定保護作用。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LC92IUuM-1583135523325)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1582794737282.png)]

三:實驗過程

1、實驗環境

  • VMware Workstation虛擬機
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-VxAv6aMa-1583135523327)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583067544988.png)]

  • 在squid服務器上配置

2、修改主機名 ,創建新目錄並把squid壓縮包掛載上,然後解壓
[root@localhost ~]# hostnamectl set-hostname squid
[root@localhost ~]# su
[root@squid ~]# mkdir /abc
[root@squid ~]# mount.cifs //192.168.100.1/share /abc
[root@squid ~]# cd /abc
[root@squid abc]# tar zxvf squid-3.4.6.tar.gz -C /opt
3、安裝編譯工具,再編譯,再安裝
[root@squid abc]# cd squid-3.4.6
[root@squid squid-3.4.6]# yum install gcc gcc-c++ -y

[root@squid squid-3.4.6]#./configure --prefix=/usr/local/squid \        ‘安裝路徑’
--sysconfdir=/etc \     ‘配置文件目錄’
--enable-arp-acl \      ‘啓用acl訪問控制列表功能’
--enable-linux-netfilter \    ‘內核過濾’
--enable-linux-tproxy \     ‘支持透明模式’
--enable-async-io=100 \      ‘對於io的優化’
--enable-err-language="Simplify_Chinese" \      ‘支持的語言’
--enable-underscore \      ‘支持下劃線’
--enable-poll \    ‘功能的提升’
--enable-gnuregex       ‘正則表達式的提升’

[root@squid squid-3.4.6]# make && make install
4、爲了方便管理,創建軟鏈接
[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin
5、建立程序性用戶squid ,並賦予權限
[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid
[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/
6、修改主配置文件
[root@squid squid-3.4.6]# vim /etc/squid.conf

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ukWcmXRe-1583135523327)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583070244578.png)]

[root@squid squid-3.4.6]# squid -k parse	‘檢查語法,沒問題Ctrl+C鍵取消’
[root@squid squid-3.4.6]# squid -z     ‘初始化緩存目錄’
[root@squid squid-3.4.6]# squid   ‘啓動服務’
[root@squid squid-3.4.6]# netstat -ntap | grep 3128    ‘檢測是否啓動成功’
7、編寫啓動腳本
[root@squid squid-3.4.6]# cd /etc/init.d
[root@squid 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
[root@squid init.d]# chmod +x squid    ‘添加權限’
[root@squid init.d]# chkconfig --add squid    ‘便於service識別’
[root@squid init.d]# service squid stop   ‘關閉squid服務’
[root@squid init.d]# service squid start   ‘開啓squid’

8、搭建傳統代理服務器

[root@squid init.d]# vim /etc/squid.conf

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-M8Z225P6-1583135523328)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583071486398.png)]

9、制定防火牆的規則
[root@squid init.d]# iptables -F	'清空防火牆表內容'
[root@squid init.d]# iptables -L	'查看防火牆表內容'
[root@squid init.d]# setenforce 0	 '關閉防火牆增強型功能'
[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT	'新增規則,允許3128端口做轉發'
[root@squid init.d]# service squid reload	'重啓服務'
  • 在Web服務器上配置

1、安裝httpd服務 ,關閉防火牆
[root@web ~]# systemctl stop firewalld.service
[root@web ~]# setenforce 0
[root@web ~]# yum install httpd -y
[root@web ~]# systemctl start httpd    ‘開啓httpd服務’
2、在win10客戶機測試web網頁

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9rxvx48f-1583135523328)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583072189551.png)]

3、 通過查看訪問日誌,發現來訪者的IP地址爲win10客戶端的IP地址192.168.48.129

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-78yl6NL7-1583135523329)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583072364136.png)]

4、設置squid代理

(1)首先清除客戶機瀏覽器的緩存記錄(以谷歌爲例)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rw13dojR-1583135523330)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583072815640.png)]

(2)設置代理

打開谷歌瀏覽器,設置-高級-系統-打開您計算機的代理設置
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-10Tv5HaW-1583135523330)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583072941977.png)]

(3)再次訪問Web服務器

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wuD59haa-1583135523331)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1583073099000.png)]

(4)再次查看Web端的httpd訪問日誌
[root@web ~]# cat /var/log/httpd/access_log 	‘發現訪問原地址48.129 變成了192.168.48.128 squid的代理地址’

由此可以看出是由代理服務器過來訪問網頁的,而不是客戶機,這就起到了隱藏客戶機真實 IP地址的目的。

​ 瀏覽器訪問 web服務器的IP地址,由於我們設置了代理服務,所以訪問網站這個請求,是代理服務器幫我們完成的。爲了驗證,可以查看 web服務器的日誌文件,就能知道訪問的 IP地址是客戶機還是代理服務器的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章