Squid cache(簡稱爲Squid)是一個流行的自由軟件(GNU通用公共許可證)的代理服務器和Web緩存服務器。Squid有普遍的用途,從做爲網頁服務器的前置cache服務器緩存相關請求來提升Web服務器的速度,到爲一組人共享網絡資源而緩存萬維網,域名系統和其餘網絡搜索,到經過過濾流量幫助網絡安全,到局域網經過代理上網。Squid主要設計用於在Unix一類系統運行。
正向代理:
這裏我利用linux系統做爲squid服務器,因此首先要來在linux上安裝squid。
當本地站點沒有緩存時,須要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服務器了: