1. 程式人生 > >squid代理服務器

squid代理服務器

ip地址 客戶端 應用層 配置文件 代理服務器

Squid代理

工作在應用層

主要提供緩存加速,應用層過濾控制的功能。

代理種類:1、傳統代理 2、透明代理 3、反向代理

Squid代理/etc/squid/squid.conf 配置文件。

62 http_port 3128 默認監聽的端口。若服務器有多個網絡接口,但只希望在其中一個ip地址上提供服務,還可以同時指定ip地址, 例如: http_port 192.168.10.13128

Squid代理服務器使用內存資源比較多。


一、傳統代理

客戶端→squid代理→ Web

客戶端ip192.168.233.128/24

squid代理服務器:192.168.233.130/24

Web端:192.168.233.129/24

首先1squid代理服務器:192.168.10.1/24 配置

/etc/squid/squid.conf

http_access allow all //放在deny之前

http_port 3128 代理端口3128

visible_hostnamenginx 自己的主機名

/etc/hosts 下寫上自己的ip與主機名,否則日誌中會報錯。

/etc/init.d/squidstart 不要重啟,否則時間是會很長。直接start

Squid -z

2、客戶端:在火狐瀏覽器設置代理

技術分享

填寫服務器代理的ip地址。

技術分享

3、測試訪問web

技術分享

4、驗證代理服務器上的日誌。

tail -f/var/log/squid/access.log

技術分享

5web服務端

技術分享

6、開啟緩存功能。

/etc/squid/squid.conf

技術分享

Service squidrestart

技術分享


二、透明代理


技術分享

Squid服務器:

技術分享

把這些寫在前面。

技術分享

[[email protected] ~]#/etc/init.d/squid start 不要restart,會很慢的。

squid –zX 重新初始話緩存,-X查看過程

iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 80 -j REDIRECT --to-ports3128

iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 443 -j REDIRECT--to-ports 3128

REDIRECT:重定向實現本機端口的重新定向,將內網訪問過的都通過“ –to-ports 端口號的形式來指定映射的目標端口。

net.ipv4.ip_forward= 1 /etc/sysctl.conf 開啟Ip轉發。Sysctl -p

客戶端:

把瀏覽器上的代理不要設置。

把網關設置成squidIp(是與squid同一網絡中的)

技術分享

設置好以後,重新啟動服務即可。

/etc/init.d/networkrestart

U:up狀態 G:gateway

客戶端打開瀏覽器進行訪問

技術分享

最後在代理服務器上打開日誌並檢查。

技術分享同樣,web上也有了訪問日誌了。但在web上顯示的是squid的訪問地址 192.168.0.138技術分享

acl訪問控制:

squid中可以進行限制,可以針對源地址與目標地址,訪問的url路徑,訪問的時間等各種條件進行過濾。

技術分享

源地址與目標地址的網段或是IP範圍,主機名等。

技術分享

squid -k parse 測試是否正確。

squid -k check

dstdomain:目標域,匹配域內所有站點

port:目標端口

url_regex -i^rtsp:// ^emule:// :目標資源的url地址,-i忽略大小寫。

urlpath_regex -i\.mp3$ \.mp4$ \.rmvb$:以.rpm3.mp4,等結尾的url

time:定義的時間,例如:MTWHF 08:30-17:30 周一至周五08:30-17:30

整個配置文件裏是從上到下來讀的,越寫在前面的,優先級越高,權限也越大。

技術分享

還可以建立對目標地址的名單

技術分享

定義類型與調用文件中的列表內容。

acl ipaddr dst"/etc/squid/all.list"

acl yu-mingdstdomain "/etc/squid/deny.list"

設置acl訪問權限

http_access allowipaddr

http_access denyyu-ming

每一條規則中,可以包含多個acl列表名,各個列表之間以空格分隔,為的關系,表示必須滿足所有acl列表對應的條件才會進行限制。

需要使用取反條件時,可以在acl列表前添加符號。


http_access denymusic clients //禁止客戶端下載mp3mp4等文件。

http_access denyyu-ming clients //禁止客戶端訪問名單中的域名。

Squid

1、沒有任何規則時,squid服務將拒絕客戶端請求。

2、有規則但找不到相匹配的項時,squid將采用與最後一條規則相反的權限。例如:最後一條規則是allow,就拒絕客戶端的請求,否則允許該請求。

通常情況下,把最常用的控制規則放在陽前面,以減少squid的負載。在訪問控制的總體策略上,建議采用“先拒絕後允許先允許後拒絕的方式,最後一條規則設為默認策略,設為

“http_access allow all”“http_access deny all”


本文出自 “silence” 博客,請務必保留此出處http://silencezone.blog.51cto.com/3613477/1940049

squid代理服務器