Squid代理服務

Squid代理服務 html

  1. Squid

1、本章結構 前端

2、代理服務器概述 web

3squid簡介 vim

Squid是一個在GNU/GPL協議下發布的既可做爲代理服務器,同時也可做爲Web緩存守護進程的應用軟件。Squid主要是支持像HTTPFTP那樣的協議,可是對其它的協議好比HTTPSSSL,TLS等一樣也能支持。其特色是Web緩存守護進程經過從常常上訪問的網站裏緩存WebDNS數據,從而讓上網速度更快。Squid支持全部的主流平臺,包括LinuxUNIX,微軟公司的Windows和蘋果公司的Mac 瀏覽器

每一臺代理服務器上都有若干顆硬盤,每一個硬盤又分割成多個分區,每個分區又可創建多個目錄,目錄下存放文件,squid稱這些文件爲object 緩存

查詢方式: 安全

  • 經過查詢表的方式來定位某個資源的位置。
  • 所查詢的表叫hash table和digest table
  • digest相似於摘要或索引,記錄了每一個分區,每一個目錄裏存放的緩存摘要,
  • hash相似於目錄或提綱,它記錄了全部的digest表的信息
  • squid接收到請求後,先查看hash,再根據hash所指向的digest去查詢所須要的信息。

4、代理的基本類型 服務器

①傳統代理:適用於Internet,需明確指定服務端 併發

[傳統代理] dom

  • SQUID被綁定到代理服務器的3128端口。
  • 客戶端瀏覽器被配置使用代理服務器的3128端口。
  • 客戶端不須要配置DNS。
  • 代理服務器上須要配置DNS。
  • 客戶端不須要配置缺省路由。

②透明代理:適用於共享上網網關,不需指定服務端

[透明代理]

透明代理的意思是客戶端根本不須要知道有代理服務器的存在。

  • 配置透明代理服務器軟件運行在代理服務器的3128端口。
  • 配置代理服務器將全部對80端口的鏈接重定向到3128端口。
  • 配置客戶端瀏覽器直接鏈接到Internet。
  • 在客戶端配置好DNS。
  • 配置客戶端的缺省網關,如:192.168.1.1。

③反向代理:位於網站前端,代理web接受客戶端的請求

5、使用代理的好處

①提升web訪問速度

②隱藏客戶機的真實IP地址

6、代理服務器概述

7、常見配置

http_port 3128 #代理服務器的端口

access_log /var/log/squid/access.log squid #squid記錄的日誌

cache_mem 64 MB #緩存程序所使用的空間

cache_dir ufs /var/spool/squid 100 16 256

  • ufs爲文件系統,全名unix file system
  • 100爲緩存的數據大小
  • 16爲一級目錄的數量限制
  • 256爲二級目錄的數量限制

visible_hostname proxy.wdd.com #告訴squid它的主機名,必須寫

dns_testnames www.google.com www.163.com#能夠測試squid是否可用

maximum_object_size 4096 KB #限制squid可以在本地緩存的文件的大小

reply_body_max_size 10 MB #用戶經過squid可以下載的最大文件大小

error_directory /usr/share/squid/errors/Simplify_Chinese #中文錯誤信息

hierarchy_stoplist cgi-bin ? #用來強制某些特定的對象不被緩存,主要是處於安全的目的

coredump_dir /var/log/squid #定義dump的目錄

refresh_partern #刷新緩存的規則

8acl訪問控制

ACLAccess Control List,訪問控制列表):根據源地址、目標URL、文件類型等定義列表。

acl 列表名稱 列表類型 列表內容

②針對已定義的acl列表進行限制

http_access allowdeny 列表名稱

③訪問規則

  • 從上至下依次查看
  • 沒有任何規則時,默認拒絕squid訪問
  • 有規則,但沒有匹配的項時,採起與最後一條相反的操做

以下所示:

#vim /etc/squid/squid.conf

….

acl all src 192.168.131.0/24

http_access deny all

#service squid reload

④列表類型

src

源地址

dst

目標地址

port

目標端口

dstdomain

目標域

time

訪問時間

maxconn

最大併發鏈接數

url_regex

目標URL地址

urlpath_regex

整個目標URL路徑

以下所示

#vim /etc/squid/squid.conf

acl all src 0.0.0.0/0.0.0.0

acl MYLAN src 192.168.1.0/24 192.168.4.0/24

acl WORKTIME time MTWHF 08:30-17:30

http_access allow MYLAN WORKTIME

http_access deny all

#service squid reload

注:HTTP_PROXY HTTP協議提供代理

HTTPS_PROXY HTTPS協議提供代理

FTP_PROXY FTP協議提供代理

NO_PROXY 添加不使用代理的客戶機地址

2、傳統代理

試驗準備:主機ABCIP地址分別爲192.168.131.137192.168.131.130192.168.131.136,主機B和主機C操做系統爲RHEL6.4 x86_64,爲最小化安裝,主機A爲桌面化安裝。主機ABC均在同一個網段,主機A做爲客戶端,主機B做爲squid服務器,主機C做爲網站服務器。

均關閉防火牆和SELINUX

1、主機C操做

#yum –y install httpd

#service httpd start

#vim /var/www/html/index.html

I am host c

在瀏覽器輸入http://192.168.131.136/

2、主機B操做

# yum -y install squid

# vim /etc/squid/squid.conf

http_port 3128

visible_hostname www.taobao.com #必定要填寫

# service squid start

3、主機A操做

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

#service NetworkManager stop

#ifdown eth0

#ifup eth0

#ifconfig

3、客戶端測試

①圖形化測試

修改火狐瀏覽器設置:"Edit""Preferences""Advanced""Network""Settings""Manual proxy configuration",填寫好代理服務器端口和3128端口,以下

點擊"ok"便可。

在瀏覽器輸入http://192.168.131.136

squid代理服務器停掉

#service squid stop

發現訪問不了了

從新啓動squid

#service squid start

又能夠訪問了

②字符界面測試

# yum -y install elinks #安裝字符瀏覽器

#vim /etc/profile

HTTP_PROXY=http://192.168.131.130:3128

export HTTP_PROXY

# elinks 192.168.131.136

中止squid服務器

#service squid stop

在訪問192.168.131.130,鏈接被拒絕

3、透明代理

實驗準備:主機A做爲內網測試機,IP地址爲192.168.10.2,主機B做爲代理服務器,兩塊網卡,第一張網卡eth0於主機A在同一個網段,IP地址爲192.168.10.1;第二張網卡IP地址爲200.200.200.1,主機C在同一個網段。主機C做爲外網服務器,其IP地址爲200.200.200.2。三臺主機均清楚防火牆和禁用SLEINUX

1、主機A操做

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

#指定網關

#service NetworkManager stop

#ifdown eth0

#ifup eth0

2、主機C操做

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

#service network restart

#yum –y install httpd

#service httpd start

#vim /var/www/html/index.html

www.baidu.com

3、主機B操做

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

#vim /etc/sysconfig/network-scripts/ifcfg-eth1

#service network restart

#vim /etc/sysctl.conf

#sysctl –p

#yum –y install squid

#vim /etc/squid/squid.conf

#service squid start

#iptables –F #清楚防火牆策略

#iptables –t nat -A PREROUTING –I eth0 –s 192.168.10.0/24 –p tcp –dport 80 –j REDIRECT –to-ports 3128

#配置防火牆策略 iptables -t nat -I PREROUTING -i 內網接口名 -s 內網網段 -p tcp --dport 80 -j REDIRECT --to-ports 3128

4、測試

①用內網測試機,訪問外網

在客戶端主機輸入http://200.200.200.2

把代理服務器停掉

#service squid stop

發現沒法訪問了

②限制下載大小

代理服務器

#vim /etc/squid/squid.conf

reply_body_max_size 10 MB #10MB之間是有空格的,不然報錯

#service squid reload #從新加載配置文件

網站服務器

#dd if=/dev/zero of=/var/www/html/wdd.txt bs=1M count=15

客戶端測試

在瀏覽器輸入http://200.200.200.2/wdd.txt

4、反向代理

試驗準備:主機ABCD,主機A做爲外網客戶端,IP地址爲200.200.200.2,主機B爲代理服務器,雙網卡,第一張網卡eth0與內網主機C和主機D在同一個網段,IP地址爲192.168.10.1;第二張網卡與外網主機在同一網段,IP地址爲200.200.200.1;主機C和主機D做爲網站服務器,其IP地址分別爲192.168.10.2192.168.10.3,均關閉防火牆和SELINUX。主機A爲圖形化安裝,主機BCD爲最小化安裝,操做系統爲RHEL6.4 x86_64

1、主機A操做

#vim /etc/sysconfig/network-ifcfg-eth0

#service NetworkManager stop

#ifdown eth0

#Ifup eth0

2、主機C操做

#vim /etc/sysconfig/network-ifcfg-eth0

#ifdown eth0

#ifup eth0

#yum -y install httpd

#service httpd start

#vim /var/www/html/index.html

I am web1

3、主機C操做

#vim /etc/sysconfig/network-ifcfg-eth0

#ifdown eth0

#ifup eth0

#yum -y install httpd

#service httpd start

#vim /var/www/html/index.html

I am web2

4、主機B操做

#vim /etc/sysconfig/network-ifcfg-eth0

#vim /etc/sysconfig/network-ifcfg-eth1

#service network restart

#yum –y install squid

#vim /etc/squid/squid.conf

acl wan src 200.200.200.0/24

http_access allow wan

http_port 200.200.200.1:80 vhost

visiable_hoatname www.taobao.com

cache_peer 192.168.10.2 parent 80 0 originserver round-robin weight=1

cache_peer 192.168.10.3 parent 80 0 originserver round-robin weight=1

#service squid start

5、測試

在外網主機輸入http://200.200.200.1,按F5刷新獲得以下結果

相關文章
相關標籤/搜索