Squid代理服務器的解析以及搭建

Squid代理服務器

什麼是squid?

squid是一款代理的軟件,通過緩存的方式爲用戶提供Web訪問加速對用戶的Web訪問進行過濾控制,可以很好地實現HTTP和FTP,以及DNS查詢、SSL等應用的緩存代理,功能十分強大

squid代理作用:緩存加速、隱藏IP地址、應用層過濾ACL

Squid主要組成部分(默認情況)

服務名:squid

主程序:/usr/sbin/squid

主配置文件位置:/etc/squid/squid.conf

監聽tcp端口號:3128

默認訪問日誌文件:/var/log/squid/access.log

正向代理、反向代理以及透明代理的區別和特點:

正向代理:1.通過另一臺主機去訪問目的地址,提供一個更加有效的訪問路徑

                 2.可以起到一個緩衝的作用,提高網絡的使用效率

                 3.對外有着隱藏作用

反向代理:1.保證內網的安全,通常將反向代理作爲公網訪問地址

                 2.負載均衡,通過反向代理服務器來優化網站的負載

透明代理:1.客戶端根本不需要知道代理服務器的存在,多用於NAT轉發中

                 2.不用設置代理就可以通過代理服務器轉發到其他地址進行訪問,多用於網關防火牆服務器中

squid配置文件常用參數

http_port 3128  \\監聽的端口,還可以只監聽一個IP http_port 192.168.0.1:3128
cache_mem 64MB  \\緩存佔內存大小
maximum_object_size 4096KB  \\最大緩存塊
reply_body_max_size  1024000 allow all    \\限定下載文件大小
access_log /var/log/squid/access.log   \\訪問日誌存放的地方
visible_hostname diaodu.renjie.com    \\可見的主機名
cache_dir ufs /var/spool/squid  100 16 256 
#ufs:緩存數據的存儲格式
#/var/spool/squid    緩存目錄
#100:緩存目錄佔磁盤空間大小(M)
#16:緩存空間一級子目錄個數
#256:緩存空間二級子目錄個數
cache_mgr [email protected]    \\定義管理員郵箱
http_access deny all    \\訪問控制

傳統代理

1.服務端下載安裝squid並啓動服務

yum -y install squid

service squid start

查看端口使用情況是否啓動成功

2.配置客戶端的網卡使其不能正常上網

3.設置客戶端配置代理(網不通的主機瀏覽器設置代理上網)

設置好代理之後就又可以正常上網

補充:編譯安裝步驟

tar zxf squid-3.4.6.tar.gz

cd squid-3.4.6/

./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-poll --enable-gnuregex

--prefix=/usr/local/squid:安裝目錄

--sysconfdir=/etc:單獨將配置文件修改到其他目錄

--enable-arp-ad:可以在規則中設置爲直接通過客戶端MAC進行管理,防止客戶端使用IP欺騙

--enable-linux-netfilter:使用內核過濾

--enable-linue-tproxy:支持透明模式

--enable-async-io=值:異步I/O,提升存儲性能,相當於—enable-pthreads --enable-storeio=ufs,aufs // --with-pthreads --with-aufs-thread=值

--enable-err-language="Simplify_Chinese":錯誤信息的顯示語言

--enable-underscore:允許URL中有下劃線

--enable-poll:使用Poll()模式,提升性能

--enable-gnuregex:使用GNU正則表達式

useradd -M -s /sbin/nologin squid

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

路徑優化:ln -s /usr/local/squid/sbin/* /usr/local/sbin/

透明代理

也就是在有防火牆的情況下,在網關服務器上安裝squid實現代理出去上網

代理防火牆網關服務器:eth0:192.168.0.21

                                     eth1:192.168.1.1

web服務器:192.168.0.101

測試機:192.168.1.100

1.下載安裝squid

yum -y install squid

2.在網關服務器上配置iptables防火牆策略

iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128

3.修改配置文件

vim /etc/squid/squid.conf

http_port 3128 transparent

注意:修改後重啓遇到下圖錯誤

解決方法:

編輯squid.conf配置文件添加

vim /etc/squid/squid.conf

visible_hostname squid.packet-pushers.net

重啓服務

訪問發現可以不用做SNAT策略就可以訪問外面的網頁

反向代理(cdn加速)

服務端:192.168.0.101

代理端:192.168.0.105

客戶端:192.168.0.100

1.服務端安裝好網頁

2.代理端下載安裝squid

yum -y install squid

3.修改配置文件,修改和添加下面參數

vim /etc/squid/squid.conf

http_access allow all
http_port 80 vhost vport
cache_peer 192.168.0.101 parent 80 0 no-query

cache_peer:緩存策略;172.25.254.4(服務端IP,緩存服務端讓客戶端查看); parent:沒有備用的代理;80:服務端端口爲80;0:沒有備用端口;no-query:沒有備用的代理

4.啓動服務用客戶端訪問代理服務器測試是否成功

service squid start

補充:能反向代理的常用軟件還有Varnish和nginx

squid的訪問控制

編輯squid.conf配置文件定義ACL列表

vim /etc/squid/squid.conf

格式:acl 列表名稱 列表類型 列表內容

對已定義的ACL列表進行限制

http_access allow deny 列表名稱

還可以允許多個局域網網段在工作時間上網

acl mylan src 192.168.100.0/24
acl worktime time MTWHF 08:30-17:30
http_access allow mylan worktime
http_access deny all

squid的調度器服務

代理端:192.168.0.105

服務端:192.168.0.101和192.168.0.102

客戶端:192.168.0.100

配置文件修改和添加下面參數

vim /etc/squid/squid.conf

http_access allow all
http_port 80 vhost vport
cache_peer 192.168.0.101 parent 80 0 no-query originserver round-robin name=web1
cache_peer 192.168.0.102 parent 80 0 no-query originserver round-robin name=web2

啓動或重啓服務測試

點擊刷新更換頁面

 

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