首先安裝squid-2.6.STABLE21-6.el5軟體包,以rpm方式即可。
作為應用層的代理服務軟體,squid主要提供緩存加速,應用層過濾控制的功能。
代理的基本類型
(一)傳統代理
必須在客戶機端手動設定代理伺服器的位址和端口,而且通路網頁的域名解析請求也會發給指定的代理伺服器。
實際應用中傳統代理多見于Internet環境,而透明代理多見于區域網路環境。
(二)透明代理
與傳統代理服務和功能相同,但是,客戶機端不需要指定代理伺服器的位址和端口,也可使用代理服務。使用透明代理時,域名解析請求會優先發給DNS伺服器。
Squid配置檔案常用的配置項
http_port 3128 :預設端口為3128,也可以在端口前面加IP。
cache_mem 64 MB :指定用于緩存的記憶體空間大小,應為4的倍數,建議設為實際記憶體的1/4到1/3,具體根據伺服器的性能和負載而定。
maximum_object_size 4096 KB :允許儲存到緩存空間的最大對象大小,一般以KB為機關,超過大小限制将不會被緩存,而是直接轉發給使用者。
reply_body_max_size 10240000 allow all :允許使用者下載下傳的最大檔案大小,以位元組(byte)為機關,預設為0,表示不進行限制。其中,all為預設的通路控制清單,針對任意位址的使用者。
cache_dir ufs /var/spool/squid 100 16 256 :指定緩存資料所存放的目錄,容量,子目錄個數等相關參數。
access_log /var/log/squid/access.log squid :指定代理服務的日志檔案位置及記錄格式(squid)。
visible_hostname localhost.localdomain :指定代理伺服器本機的可見主機名。
dns_testnames www.baidu.com www.sina.com www.163.com :用來執行DNS解析測試,以確定squid伺服器自身的DNS查詢功能正常。
建構傳統代理伺服器:
1.修改squid.conf配置檔案
[root@server ~]#vim /etc/squid/squid.conf
http_port 3128
visible_hostname localhost.localdomain
reply_body_max_size 10240000 allow all
http_access allow all //放在http_access deny all之前
2.初始化并啟動squid服務
[root@server ~]#service squid start
[root@server ~]#squid -z //-z選項用來初始化緩存目錄
[root@server ~]#squid -D //啟動squid服務,-D選項表示不進行DNS測試
[root@server ~]#service squid reload
3.在客戶機中指定代理
IE:"Internet選項"--"區域網路LAN設定"
Firefox:"首選項"--"進階"--"網絡連接配接"
建構透明代理伺服器:
1.配置squid支援透明代理
http_port 192.168.1.1:3128 transparent
2.設定iptables重定向政策
[root@server ~]#iptables -t nat -A PREROUTING -i 入站網卡 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
3.去除手動代理