【文章內容簡介】
信息。第二方面是可以共享因特網連接,節(jié)省 IP 資源開銷:所有的內部網用戶對外只占用一個 IP(公用 IP) ,所以就不必租用過多的 IP 地址,這樣可以降低網絡的維護成本。局域網內沒有與外網直接相連的眾多機器都可以通過內網中的一臺代理服務器連接外網,大大減少了費用。但是,值得一提的是與這個優(yōu)越性并存的一個隱憂,許多網絡黑客則利用代理服務器的這種特性隱藏自己的真實 IP 地址,逃過監(jiān)視,這給網絡帶來一定的隱患。第三方面則是提高訪問速度,節(jié)約通訊帶寬。通常代理服務器都設置有一個較大的硬盤緩沖區(qū),這個硬盤緩沖區(qū)的大小因情況而定,可能高達幾個 GB 甚至更大的空間,當有外界的信息通過代理服務器時,它將這些信息保存到自己的緩沖區(qū)里,當內部網用戶再次訪問相同的信息時,則可以直接由緩沖區(qū)中取出信息,傳給用戶,從而達到提高網絡訪問速度的目的。. Squid 代理服務軟件的優(yōu)越性Squid 性能優(yōu)秀,并且由于它是一款開源軟件,所以它仍然在世界各地的 Squid開發(fā)者的共同努力之下不斷更新和發(fā)展。Squid 與 Linux 下的其它代理軟件如Apache、Sockes、TIS FWTK 和 delegate 相比,下載安裝簡單,配置簡單靈活,不僅支持 HTTP 協議,還支持 FTP、gopher、SSL 和 WAIS 等協議。和一般的代理緩存軟件不同的是,它是一個單獨的、非模塊化的、I/O 驅動的進程來處理所有的客戶端請求。 它能快速響應,減少網絡阻塞,Squid 將遠程 Inter 對象保存為在本地緩存。當本地用戶再次訪問這些對象時,Squid 可以直接快速地提供對這些對象的訪問,正所謂進水樓臺先得月,而不必“長途跋涉”再次占用帶寬訪問的遠程服務器上的對象。它能增強訪問控制,提高網絡安全性,可以針對特定的網站、用戶、網絡、數據類型實施訪問控制。管理員可以根據 Squid 的這些特性,配合具體的網絡需求情況,合理規(guī)范網絡管理。此外,Squid 可以工作在普通代理模式、透明代理模式以及反向代理模式三大模式之下。 Squid 不僅可用在 Linux 系統(tǒng)上,還可以用在 ATX、Digital Unix、FreeBSD、HPUX、Irix、NetBSD、Nextstep、SCO 和 Solaris 等系統(tǒng)上。. Squid 的國內外研究現狀在國際上,Squid 軟件來源于一個名為 Harvest Cache 的項目,它得到了美國國家科學基金的資助,某些特征的加入和 BUG 的修復由一個在線的工作組來完成。美國國家科學基金的資助與 2022 年 7 月結束,目前的 Squid 是由很多志愿者進行開發(fā)和管理的,其經濟來源主要是一些公司的資助,這些公司從 Squid 中獲得收益。這幾年,我國對于 Linux 的重視達到前所未有的高度,一個出色的 Linux 服務器管理員往往能贏取更多的福利,越來越多的中國網絡愛好者加入到 Squid 研究的行列,使得 Squid 成為當下最流行的代理服務軟件之一。. 本文主要研究內容與結構本論文通過對 Linux 下 Squid 代理軟件的基本知識的了解之后,根據 Web 代理服務器的配置方案與工作方式,我把 Web 代理分為 3 類分別實現:一是傳統(tǒng)的代理方式,它需要在客戶端進行配置,而且客戶端指導代理的存在;第二種是透明代理,它一般用于為內部網絡中的主機提供外網的訪問服務,但不需要配置客戶端,而且客戶端不知道代理的存在;第三種是反向代理,它為外部網絡上的主機提供內網的訪問服務。2. 代理服務器的工作機制探索代理服務器一般構建在內部網絡和 Inter 之間,負責轉發(fā)內網計算機對Inter 的訪問,并對轉發(fā)請求進行控制和登記。代理服務器作為連接 Intra(局域網)與 Inter(廣域網)的橋梁,在實際應用中有著重要的作用。利用代理,除了可以實現最基本的連接功能外,還可以實現安全保護、緩存數據、內容過濾和訪問控制等功能。下圖,是 Web 代理的原理圖。圖 21多臺客戶機通過內網與 Web 代理服務器連接,Web 代理服務器除了與內網連接外,還有一個網絡接口與外網連接。Web 代理平時維護著一個很大的緩存 Cache,當某一臺客戶機,例如 A 客戶機,訪問外網的某臺 Web 服務器時,發(fā)過去的 HTTP請求進行分析,如果發(fā)現數據在緩存中已經存在,則直接把這些數據發(fā)送給客戶機A。如果 Web 代理在緩存中找不到所請求的數據,則會轉發(fā)這個 HTTP 請求到客戶機要訪問的 Web 服務器。 Web 服務器響應后,把數據發(fā)給了 Web 代理,Web 代理再把這個數據轉交給客戶機 A,同時把這些數據存儲在緩存中。于是,下次客戶機A 或其他客戶機再次要求同樣的數據時,Web 代理就直接用緩存里的數據進行響應,而不需要再次向 Web 服務器請求數據。對于客戶機來說,它是感覺不到代理的存在的,以為所看到的網頁是由真實的Web 服務器回復的。但實際上,很多的回復是從代理服務器的緩存中得到的,由于沒有通過 Inter 與真實的 Web 服務器進行通信,而內網的速度比 Inter 要快很多,因此用戶會感覺到訪問速度有很大的提高。特別是對一些訪問量很大的熱門網站,速度是有更明顯的提高。當然,如果客戶機每一次請求的數據代理服務器的緩存中都沒有,都要通過代理服務器向 Inter 上的 Web 服務器請求,則比客戶機自己直接請求的速度要慢,但由于能加快訪問的速度,因此,站在長遠的角度來看,速度的提高還是很明顯的。訪問控制列表(ACL)緩存CacheInter代理服務器3. 網絡環(huán)境及可行性分析在進行設計之前,對網絡環(huán)境的分析將有利于設計的合理性,對于是否能順利完成實驗起到尤為關鍵的作用。. 網絡環(huán)境分析如圖 31 所示,兩臺計算機通過一臺路由器連接外網,在本設計中,我利用其中一臺計算機進行實驗,分別實現普通正向代理、透明代理、反向代理三種代理方式。圖 31. 可行性分析本設計宿主機系統(tǒng)采用穩(wěn)定的 windows7 旗艦版,虛擬機采用 VMstation8 版本,虛擬機的操作系統(tǒng)采用成熟的 Red Hat Linux 9。Red Hat Linux 9 自帶了 squid 軟件包,是 ,能夠滿足實現所需的軟硬件要求。使用虛擬機進行系統(tǒng)實現,能夠方便控制,也可以節(jié)約實驗成本。此外,為了提高實驗效率,本設計使用putty 軟件遠程登錄虛擬機。根據環(huán)境分析結果,本次試驗拓撲圖如圖 32 所示,其中 A、B、C 、F 分別表示虛擬機 Red Hat LinuxA、Red Hat LinuxB、Red Hat LinuxC 以及 Red Hat LinuxF。InterFCBA圖 32. 代理服務網絡環(huán)境設計根據普通正向、透明、反向三種代理方式,設計了如下三種實現方案,正向代理方案如圖 33,透明代理方案如圖 34,反向代理如圖 35,如下所示: User(瀏覽器設置代理) Red Hat Linux A圖 33User(無需瀏覽器做任何設置) Red Hat Linux –B(網關+iptables)圖 34客戶端 Red Hat Linux –B(反向代理服務器) Web 服務器圖 35InerterInerter4. Squid 代理服務的原理及實現. Squid 功能簡介Squid 服務器效率高,功能強大,提供豐富的訪問控制、用戶認證和日志功能,它可以運行在各種 UNIX/Linux、Windows 等操作平臺之上,要求機器的內存一定要大,硬盤訪問速度要快,主要功能如下所列出的幾項:? 加速內部網絡與 Inter 的連接;? 保護內部網絡免受 Inter 的攻擊;? 獲得內部網絡用戶訪問 Inter 的上網行為記錄;? 阻止不合適的 Inte