代理伺服器
代理(英語:Proxy)也稱網絡代理,是一種特殊的網絡服務,允許一個終端(一般為客戶端)通過這個服務與另一個終端(一般為伺服器)進行非直接的連接。一些閘道器、路由器等網絡裝置具備網絡代理功能。一般認為代理服務有利於保障網絡終端的私隱或安全,在一定程度上能夠阻止網絡攻擊。
提供代理服務的電腦系統或其它類型的網絡終端稱為代理伺服器。一個完整的代理請求過程為:客戶端首先根據代理伺服器所使用的代理協定,與代理伺服器建立連接,接着按照協定請求對目標伺服器建立連接、或者獲得目標伺服器的指定資源(如:檔案)。在後一種情況中,代理伺服器可能對目標伺服器的資源下載至本地快取,如果客戶端所要取得的資源在代理伺服器的快取之中,則代理伺服器並不會向目標伺服器傳送請求,而是直接傳回已快取的資源。一些代理協定允許代理伺服器改變客戶端的原始請求、目標伺服器的原始響應,以滿足代理協定的需要。
另外在部分實行網絡審查的國家(如中華人民共和國),可以通過使用代理伺服器的方式以突破網絡審查(俗稱「翻牆」)
持有資源實體的伺服器被稱為源伺服器,從源伺服器返回的響應經過代理伺服器後再傳給客戶端。
代理協定
Socks
HTTP
功能
- 提高訪問速度
- 通常代理伺服器都設置一個較大的緩衝區,當有外界的資訊通過時,同時也將其儲存到緩衝區中,當其他用戶再訪問相同的資訊時, 則直接由緩衝區中取出資訊,傳給用戶,以提高訪問速度。
- 控制對內部資源的訪問
- 如某大學FTP(前提是該代理地址在該資源的允許訪問範圍之內),使用教育網內地址段免費代理伺服器,就可以用於對教育網開放的各類FTP下載上載,以及各類資料查詢共用等服務。
- 過濾內容
- 例如限制對特定電腦的訪問,將一種語言的數據翻譯成另一種語言[需要解釋],或是防禦代理伺服器兩邊的攻擊性訪問。
- 隱藏真實IP
- 上網者也可以通過代理伺服器隱藏自己的IP,但是只有一個代理很難保證安全,更安全的方法是利用特定的工具建立代理鏈(如:Tor網絡)。
- 突破網站的區域限制
- 通過代理伺服器訪問Netflix、Google等對中國地區進行內容限制(如防火長城)的網站;非中國大陸用戶也可通過代理伺服器訪問愛奇藝等版權僅授予中國大陸地區的網站。
- 突破網絡審查,訪問被過濾網站
- 如防火長城對中國境內互聯網存取的限制可透過使用代理伺服器繞過。(俗稱「翻牆」、「科學上網」等)
種類
根據協定區分
- RTSP代理
- 主要用於Real Player訪問Real串流媒體伺服器,一般有快取功能。埠一般為554。
- Telnet代理
- 主要用於Telnet遠端控制(黑客入侵電腦時常用於隱藏身份)。埠一般為23。
- SOCKS代理
- 只是單純傳遞封包,不關心具體協定和用法,所以速度快很多。埠一般為1080。
根據匿名程度區分
- 高度匿名代理
- 高度匿名代理會將封包原封不動的轉發,在伺服器端看來就好像真的是一個普通客戶端在訪問,而記錄的IP是代理伺服器的IP。
- 普通匿名代理
- 普通匿名代理會在封包上做一些改動,伺服器端上有可能發現這是個代理伺服器,也有一定幾率追查到客戶端的真實IP。代理伺服器通常會加入的HTTP頭有HTTP_VIA和HTTP_X_FORWARDED_FOR 。
- 透明代理
- 透明代理不但改動了封包,還會告訴伺服器客戶端的真實IP。這種代理除了能用快取技術提高瀏覽速度,能用內容過濾提高安全性之外,並無其他顯著作用。(最常見的例子是:內網中的硬件防火牆)
- 間諜代理
- 間諜代理指組織或個人建立的,用於記錄用戶傳輸的數據,然後進行研究、監控等目的代理伺服器。
反向代理伺服器
反向代理伺服器架設在伺服器端,通過緩衝經常被請求的頁面來緩解伺服器(如Web伺服器)的工作量。安裝反向代理伺服器有幾個原因:
- 負載平衡
- 快取靜態內容
- 壓縮數據
- 外網發佈