代理伺服器

代理網路用戶去取得網路信息

代理伺服器(Proxy Server)的功能是代理網路用戶去取得網路信息。形象地說,它是網路信息的中轉站,是個人網路和Internet服務商之間的中間代理機構,負責轉發合法的網路信息,對轉發進行控制和登記。

代理伺服器作為連接Internet與Intranet的橋樑,在實際應用中發揮著極其重要的作用,它可用於多個目的,最基本的功能是連接,此外還包括安全性、緩存、內容過濾、訪問控制管理等功能。更重要的是,代理伺服器是Internet鏈路級網關所提供的一種重要的安全功能,它的工作主要在開放系統互聯(OSI)模型的對話層。

簡介


隨著Internet與Intranet的飛速發展,作為連接Internet與Intranet的的橋樑,代理伺服器在實際應用中發揮著極其重要的作用。
代理伺服器是網路信息的中轉站。一般情況下,使用網路瀏覽器直接去鏈接其它Internet站點並取得網路信息時,須送出請求信號來得到應答,然後對方再把信息傳送回來。代理伺服器是介於瀏覽器和Web伺服器之間的一台伺服器,有了它之後,瀏覽器不是直接到Web伺服器去取回網頁而是向代理伺服器發出請求,請求信號會先送到代理伺服器,由代理伺服器來取回瀏覽器所需要的信息並傳送給你的瀏覽器。而且,大部分代理伺服器都具有緩衝的功能,就好像一個大的Cache,它不斷將新取得數據包存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。
代理伺服器不僅可以實現提高瀏覽速度和效率的功能,它還可以實現網路的安全過濾、流量控制(減少Internet使用費用)、用戶管理等功能,因此它既是一種網路防火牆技術,同時也可以解決許多單位連接Internet引起IP地址不足的問題。

工作原理


代理伺服器作為一種既是伺服器又是客戶機的中間程序,主要用於轉發客戶系統的網路訪問請求。但是,代理伺服器不只是簡單地向真正的網際網路伺服器轉發請求,它還可以控制用戶的行為,對接收到的客戶請求進行決策,並根據過濾規則對用戶請求進行過濾。
通過代理伺服器,網路管理員可以實現比用包過濾路由器更嚴格的安全策略。不同於使用通用的包過濾路由器來管理通過防火牆的網際網路服務流向,代理伺服器通過在網關上為每項需要的應用安裝專用的代碼(代理服務)來工作。如果網路管理員沒有為某一特殊服務安裝代理服務代碼,該服務就不會被支持,也不會通過防火牆轉發相應的客戶請求。並且,這種代理伺服器碼能被配置成僅支持某項服務的網路管理員認為可以接受的那部分特徵,而不支持其他的特徵。

主要功能


代理伺服器具有許多功能。對於我們個人用戶而言,通過代理上網,能讓我們訪問一些直接訪問會比較慢的網站,比如網際網路用戶訪問教育網的網站。對於單位而言,內部使用代理可以預先過濾一些病毒,保障上網的安全,還能有效地進行訪問控制、網速限制,上網監控等等。
以下介紹代理伺服器的基本功能:
(1)一個lP地址或Internet帳戶供多個用戶同時使用
在目前情況下,IP地址是Internet中有限的寶貴資源,如果將這些IP地址僅僅用於單個的請求Internet訪問的用戶,不能不說是一種資源浪費。使用代理伺服器可以做到通過一個IP同時向多個用戶提供Internet的訪問,對於通過電話撥號連通Internet的內部網路,則可以實現利用一條電話線,一個modem和一個Internet帳戶,讓內部網路上所有用戶同時訪問Internet,這樣就充分利用了IP地址資源。
(2)緩存功能,可以降低費用,提高速度
安裝時,代理伺服器會在硬碟上開出一塊磁碟空間作為緩存區,將代理用戶從Internet上接收的內容下載一份保存起來,當再有用戶訪問同樣內容時,就直接從緩存區傳送給用戶,而不再從Internet上尋找。代理伺服器的這項功能可以大大地提高訪問速度,同時也降低了通信費用,是一項相當重要的功能。
(3)對內部網路用戶進行許可權和信息流量計費管理
代理伺服器
代理伺服器
通過代理伺服器,網管員在提供Internet服務時,可以容易地對內部網路用戶進行訪問許可權和信息流量計費的管理。網管員不但能夠做到只允許被授權的區域網用戶訪問Internet,還能夠控制這些用戶在哪些時間、使用哪台計算機訪問哪些類型的Internet服務。對於已經獲准訪問的Internet的用戶,網管員還能夠按照多種方式進行信息流量的計費管理,如:按照個人計費、按照部門所屬計算機計費等,為網路管理帶來了極大的方便。
(4)對進入內部網路的Internet信息實施監控和過濾
為了避免那些與業務無關的信息進入內部網路浪費通信資費,各個機構對允許訪問的內容往往有一些相應的規定。通過代理伺服器,網管員不但可以採取過濾的方法簡便地控制從Internet流入內部網路的信息內容,還能對用戶訪問Internet的情況進行實時監控和建立監查日誌存檔備查。

主要分類


通過代理伺服器共享上網從技術實現角度來說可以分為硬體共享上網和軟體共享上網兩種方式,從代理伺服器工作的層次的角度來說可以分為應用層代理、傳輸層代理和SOCKS代理。
代理伺服器
代理伺服器
應用層代理工作在TCP/IP模型的應用層之上,它只能用於支持代理的應用層協議(如HTTP,FTP)。它提供的控制最多,但是不靈活,必須要有相應的協議支持。如果協議不支持圖2所示的代理伺服器實現模型(如SMTP和POP),那就只能在應用層以下代理,也即傳輸層代理。最後一種代理需要改變客戶端的IP棧,即SOCKS代理。它是可用的最強大、最靈活的代理標準協議。以下將從代理伺服器工作的層次的分類角度上介紹幾種不同層次的代理伺服器。

應用層代理

這裡主要介紹基於HTTP協議的代理伺服器。HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分散式超媒體信息系統。根據HTTP協議規定,當客戶端使用代理模式時,發送的請求命令格式如下:methodhttp://hostname/path/⋯/fiIename。
當客戶端同網路代理服務系統建立連接后,代理伺服器將收到請求命令,這時代理伺服器應該截取主機名部分進行域名解析,並同該主機建立連接,將去掉主機名部分的請求命令轉發給它,等待它做出響應,然後將得到的響應轉發給客戶端,最後斷開連接。其模型如圖3所示。

傳輸層代理

傳輸層代理直接與TCP層交互,更加靈活。要求代理伺服器具有部分真正伺服器的功能:監聽特定TCP或UDP埠,接收客戶端的請求同時向客戶端發出相應的響應。

socks代理

Socks是一個客戶/伺服器環境的代理協議。它包括兩個主要的組件,Socks伺服器和Socks客戶庫。Socks伺服器實現在應用層,Socks客戶庫實現在客戶的應用層與傳輸層之間。一個代理伺服器為客戶機與應用伺服器建立連接,代理伺服器在客戶與應用伺服器之間中轉數據,從應用伺服器的角度來看,代理伺服器是客戶。
當客戶想建立到應用伺服器的連接時,先連接到代理伺服器。應用伺服器的地址和埠號通過代理協議被傳遞到代理伺服器,然後,代理伺服器再連接到應用伺服器。一旦到應用伺服器的連接被建立,代理伺服器在客戶與應用伺服器之間中轉數據。
目前,有兩個版本的Socks協議,版本4和版本5。Socks版本4被簡寫為“Socks V4”,Socks版本5被簡寫為“Socks V5”。

網路影響


隨著Internet的應用越來越廣,Internet各項服務的安全問題也越來越突出,提供一個安全的網路環境也就變得日益重要。一般可以從兩個方面實現Internet安全服務:
(1)訪問控制,訪問控制是保護網路的第一道防線,一般由防火牆實現。
(2)通信安全,此種服務提供對數據加密、在通信對方認證、雙方無法抵賴、數據在傳輸過程中的完整性等服務,可以在應用層、傳輸層、網路層實現。
Internet上的代理服務是防火牆的一種形式,屬於應用級網關,內部網路與外部網路之間沒有直接的連接,外部計算機的網路鏈路只能到達代理伺服器,明顯地增加了網路的安全性,另外,代理伺服器相對於包過濾來講,能進行用戶級的認證,即可以限制某些用戶訪問某些Internet站點或使用某種Internet服務等,從而大大提高了網路的安全性。
然而代理伺服器的廣泛應用,也使它成為網路攻擊的重點目標。目前的代理伺服器並不能為用戶提供可靠的安全性,甚至無法保障其自身的安全,所以研究並提高代理伺服器的安全備受關注。
代理伺服器
代理伺服器