Squid cache(簡稱為Squid)是一個流行的自由軟體(GNU通用公共許可證)的代理伺服器和Web緩存伺服器。Squid有廣泛的用途,從作為網頁伺服器的前置cache伺服器緩存相關請求來提高Web伺服器的速度,到為一組人共享網絡資源而緩存網際網路,域名系統和其他網絡搜尋,到通過過濾流量幫助網絡安全,到區域網路通過代理上網。Squid主要設計用于在Unix一類系統運作。
正向代理:
這裡我利用linux系統作為squid伺服器,是以首先要來在linux上安裝squid。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuQDO0kjM5IzMx8CX1AzMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
當本地站點沒有緩存時,需要DNS主動轉向Internet進行請求資訊,為要進行解析,需要有DNS指向,配置/etc/resolv.conf檔案,指明DNS,這裡我使用的是電信的
然後把squid服務啟起來service squid start
為了實作代理,需要配置squid的配置檔案,對其進行相應的修改
vim /etc/squid/squid.conf
首先,配置一下出現錯誤時的規則
意思是說,當無法通路時,頁面顯示轉到其網關192.168.2.254(當然可以根據實際需求進行配置,這裡隻是實驗說明),顯示錯誤頁面效果,讓使用者明白通路出錯。
然後重新開機squid服務service squid restart
這時可以測試一下,但測試之前,要對内部主機做代理:
然後測試一下
這是因為我們沒有配置代理的其他資訊,是上不去網的,由圖可以看出,剛才做的已經生效了。
然後接着對配置檔案進行配置,來達到想要的效果。這裡先允許一下所有的,來看下效果
不要忘了重新開機squid服務
說明,代理已經生效了。但是允許所有當然不是理想的情況,這時,可以對其他地方進行編輯配置,來達到理想的效果
這裡先以控制一台主機為例:
上圖中的badip是自己起的名字,590、591兩行表示拒絕192.168.2.100通路外網
配置完成以後,同樣要重新開機服務,這裡把其中一台主機位址改為192.168.2.100,然後來看測試結果
然後把位址改成其他的再測試
要做其他的效果,可以根據自己的需求根據配置檔案裡的說明來編輯配置檔案即可,這裡我就不在一一舉例。
透明代理:
把所有的通過80多口的流量都重定向到3128端口
剛才我們在浏覽器裡設定了代理,在做透明代理時,我們要把其取消,并在填寫位址時要填寫上網關、DNS。
然後要把squid伺服器的資料轉發功能打開,編輯/etc/sysctl.conf
然後執行如下指令:
然後做端口的重定向(把所有的通過80多口的流量都重定向到3128端口)
這條指令什麼意思,來看另一指令就清楚了
然後去配置squid的配置檔案來做政策
這裡不做其他配置,依然先允許所有,然後依然要重新開機服務,測試
然後再來做一個例子
然後重新開機服務測試
反向代理:
為了說明問題,首先要在内部主機搭建一www伺服器,這裡,為了,說明問題,隻是簡答的搭建了一下
配置squid配置檔案
然後重新開機服務,測試
在外部pc浏覽器内輸入http://192.168.102.44便能通路到内部www伺服器了: