天天看點

pfSense 2.33 Squid透明代理設定

Squid是一個緩存 Internet 資料的軟體,其接收使用者的下載下傳申請,并自動處理所下載下傳的資料。當一個使用者想要下載下傳一個首頁時,可以向 Squid 發出一個申請,要 Squid 代替其進行下載下傳,然後 Squid 連接配接所申請網站并請求該首頁,接着把該首頁傳給使用者同時保留一個備份,當别的使用者申請同樣的頁面時,Squid 把儲存的備份立即傳給使用者。

按照代理類型的不同,可以将 Squid 代理分為正向代理和反向代理,正向代理中,根據實作方式的不同,又可以分為标準代理和透明代理。

1.标準的代理緩沖伺服器

   一個标準的代理緩沖服務被用于緩存靜态的網頁(例如:html檔案和圖檔檔案等)到本地網絡上的一台主機上(即代理伺服器)。當被緩存的頁面被第二次通路的時候,浏覽器将直接從本地代理伺服器那裡請求資料而不再向原web站點請求資料。這樣就節省了寶貴的網絡帶寬,而且提高了通路速度。但是,要想實作這種方式,必須在每一個内部主機的浏覽器上明确指明代理伺服器的IP位址和端口号。用戶端上網時,每次都把請求送給代理伺服器處理,代理伺服器根據請求确定是否連接配接到遠端web伺服器擷取資料。如果在本地緩沖區有目标檔案,則直接将檔案傳給使用者即可。如果沒有的話則先取回檔案,先在本地儲存一份緩沖,然後将檔案發給用戶端浏覽器。

2.透明代理緩沖伺服器

   透明代理緩沖服務和标準代理伺服器的功能完全相同。但是,代理操作對用戶端的浏覽器是透明的(即不需指明代理伺服器的IP和端口)。透明代理伺服器阻斷網絡通信,并且過濾出通路外部的HTTP(80端口)流量。如果用戶端的請求在本地有緩沖則将緩沖的資料直接發給使用者,如果在本地沒有緩沖則向遠端web伺服器送出請求,其餘操作和标準的代理伺服器完全相同。對于Linux作業系統來說,透明代理使用Iptables或者Ipchains實作。因為不需要對浏覽器作任何設定,是以,透明代理對于ISP(Internet伺服器提供商)特别有用。

3.反向代理緩沖伺服器

反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB伺服器的負載。反向代理伺服器承擔了對原始WEB伺服器的靜态頁面的請求,防止原始伺服器過載。它位于本地WEB伺服器和Internet之間,處理所有對WEB伺服器的請求,阻止了WEB伺服器和Internet的直接通信。如果網際網路使用者請求的頁面在代理伺服器上有緩沖的話,代理伺服器直接将緩沖内容發送給使用者。如果沒有緩沖則先向WEB伺服器送出請求,取回資料,本地緩存後再發送給使用者。這種方式通過降低了向WEB伺服器的請求數進而降低了WEB伺服器的負載。

在pfsense中,使用較多的是Squid透明代理。本教程将告訴你如何在pfSense 2.33上設定Squid透明代理。本例中Squid的版本号為3.5.24_2 。

安裝Squid

1.導航到System > Package Manager(插件管理)。

2.單擊Available Packages(可用插件)頁籤。

3.向下翻頁找到squid。

4.單擊 ‘+’ 進行安裝。

Squid GeneralSettings(正常設定)

1.  導航到 Services > Squid Proxy Server > General頁籤

2.  Enable Squid Proxy(啟用Squid代理)-Check toenable(設定為啟用)

3.  Keep Settings/Data(保留設定/資料)-如果不想在删除Squid後,還保留大量的緩存資料,建議不選擇。

4.  Proxy Interface(代理接口)-選擇LAN 。

5.  Allow Users on Interface-如果選中,連接配接到“Proxy Interface(代理接口)”字段中選擇的接口的使用者将被允許使用該代理。不需要将接口的子網添加到允許的子網清單中。

6.  其他設定可以使用預設值。

<a href="https://s1.51cto.com/wyfs02/M02/97/BF/wKioL1kyMHui2c98AAFegYzfyvA030.png" target="_blank"></a>

TransparentProxy Setting(透明代理設定)

1.Transparent HTTP Proxy(透明代理)-Check to enable(設定為啟用),啟用後目标端口80的所有請求将轉發到代理伺服器。

2.Transparent Proxy Interface(透明代理接口)-選擇LAN。

3.Bypass Proxy for Private Address Destination(旁路代理私人位址目的地)-必須選上,不然上不了網(虛拟機中測試)。(如果不設定,會有錯誤提示:您所請求的網址(URL)無法擷取)。

4.其他設定預設。

<a href="https://s1.51cto.com/wyfs02/M00/97/BE/wKiom1kyMJ_C3eF0AAGLt3R6O0w854.png" target="_blank"></a>

LoggingSettings(日志設定)

可以不設定(特别在硬碟容量不足的時候)!

1.Enable Access Logging(啟用通路日志)-Check toenable(設定為啟用)。

2.Log Store Directory(日志儲存目錄)-通常不需要更改目錄,是以保持預設值就足夠了。如果确實需要更改路徑,請記住不要在路徑末尾添加“/”。

3.RotateLogs(日志輪流)-定義将保留多少天的日志檔案。如果不設定,則一直儲存。

4.其他采用預設值。

<a href="https://s3.51cto.com/wyfs02/M02/97/BF/wKioL1kyMM3RlgGCAADOCrPl5h4808.png" target="_blank"></a>

HeadersHandling, Language and Other Customizations(标題處理,語言和其他設定)

1.Visible Hostname(可見主機名)-如果代理伺服器顯示任何錯誤,這将顯示在用戶端計算機上。可以保持與pfSense伺服器的主機名相同的名稱。

2.Administrator’s Email (管理者郵箱)–如果發生錯誤,這也将顯示在客戶機上。

3.Error Language (錯誤提示語言)-選擇在用戶端出現錯誤資訊時顯示的語言。

4.其它選項保持預設就可以了。

Squid HardDisk Cache Settings(硬碟緩存設定)

1.  單擊Local Cache頁籤, 向下翻頁找到Squid Hard Disk Cache Settings

2.  Hard Disk Cache Size(硬碟緩存大小)-配置設定給Squid的最大硬碟緩存。建議将數值設定在4GB以上。

3.  Hard Disk Cache System(硬碟緩存系統)-建議預設設定。

4.  Level 1 Directories(一級目錄)-指定硬碟緩存1級目錄的數量。最多可以設定256個。目錄越多,啟動越慢,但在特定條件下可以加快緩存速度。

5.  Hard Disk Cache Location(硬碟緩存位置)-如果硬碟足夠存儲在“硬碟緩存大小”中指定的緩存大小,請保持預設設定。 如果沒有,請選擇另外存儲的路徑,并記住不要在檔案路徑的末尾添加“/”。

6.  Minimum Object Size(最小對像大小)-小于指定大小的對象(以KB為機關)不會儲存在磁盤上。預設值:0(表示沒有最小值)建議預設值。

7.Maximum Object Size(最大對像大小)-大于指定大小的對象(以MB為機關)不會儲存在磁盤上。 預設值:4(MB)。提示:如果增加的速度比節省帶寬更重要,則應将其設定為較低的值。建議預設值。

<a href="https://s5.51cto.com/wyfs02/M01/97/BF/wKioL1kyMN7i1qKqAAEtR53mKQs745.png" target="_blank"></a>

Squid MemoryCache Settings(記憶體緩存設定)

1.  Memory Cache Size(記憶體緩存大小)-可以為Squid設定緩存的記憶體越多,緩存過程就越快。建議使用2GB以上。 但不要超過總記憶體的50%。

2.  Maximum Object Size in RAM(RAM中的最大對象大小)- 高于配置設定大小的對象不會存儲在記憶體緩存中。建議使用預設值(256 KB)。

3.  Memory Replacement Policy(記憶體替換政策)-确定在需要存儲空間時從記憶體中清除哪些對象。建議預設heap GDSF。

<a href="https://s3.51cto.com/wyfs02/M02/97/BF/wKioL1kyMRnQaNMZAACnGz80Gq4040.png" target="_blank"></a>

Squid AccessControl Lists(通路控制清單)

根據需要進行設定!

1.單擊ACLs頁籤。

2.Allowed Subnets (允許的子網)–輸入以CIDR格式(192.168.111.0/24) 允許使用代理的子網。每個條目一行。如果在“SquidGeneral Settings(正常設定)”頁籤上選中了“AllowUsers on Interface(允許接口使用者)”時,則無需将“代理接口”子網添加到此清單中。

3.其他設定保證預設就行了。

<a href="https://s2.51cto.com/wyfs02/M00/97/BE/wKiom1kyMSnCamliAACMQXLJL4E671.png" target="_blank"></a>

經過以上設定Squid代理已經正常運作。

如果出現通路網站解析時間過長的問題,還要把DNS解析打開。

<a href="https://s2.51cto.com/wyfs02/M02/9A/D1/wKioL1lbCJuR0gmNAAEdW61TA2E987.png" target="_blank"></a>

以上就是一個基本的Squid透明代理的配置過程。Squid 3.5.24_2 的功能非常多,其他更複雜的配置請自行研究!

本文轉自 鐵血男兒 51CTO部落格,原文連結:http://blog.51cto.com/fxn2025/1931911,如需轉載請自行聯系原作者