網絡代理的基礎知識


常見的網絡代理技術有vpn代理,http代理,socket代理等。打開fireFox瀏覽器看見其常見網絡連接配置很多,本文將逐步講解其每項代理的意義及配置方法;

一、Socks原理介紹

1、Socket套接字介紹

Socket套接字實際上是基於TCP/IP的一組應用程序接口,應用層的程序通過調用Socket套接字來實現網絡間的進程通信。

2、Socks5原理介紹

Socks5是一個代理協議,位於傳輸層(TCP/UDP等)與應用層之間。Socks軟件包組成為如下結構:
Socks庫:安裝於客戶端。為Socket庫的替代品,所有使用Socks的程序都必須將Socket庫函數調用更改為Socks庫函數調用。需要注意的是,Socks庫函數仍然需要調用Socket庫函數,Socks僅僅是在其上做了安全驗證。
Sockd守護程序:安裝於服務器,接收並處理來自客戶端的CONNECT,BIND及請UDP associate求。以CONNECT請求為例,其工作流程為

  • 客戶端向代理服務器發出請求信息,用以協商版本和認證方法
  • 代理服務器應答,將選擇的方法發送給客戶端
  • 客戶和代理服務器進入由選定認證方法所決定的子協商過程
  • 子協商過程結束后,客戶端發送請求信息,其中明了目標服務器的IP地址和端口
  • 代理服務器驗證客戶端身份,驗證通過后會與目標服務器連接
  • 代理服務器向客戶端返回連接信息
  • 若連接完成,則代理服務器開始作為中轉站中轉數據

Socks5協議同時支持TCP及UDP代理,它主要工作與會話層,因此與上層的協議無關。但是,它無法做到全局代理。

3、Socket5代理簡介

  采用socks協議的代理服務器就是SOCKS服務器,是一種通用的代理服務器。Socks是個電路級的底層網關,是DavidKoblas在1990年開發的,此后就一直作為Internet RFC標准的開放標准。Socks 不要求應用程序遵循特定的操作系統平台,Socks 代理與應用層代理、 HTTP 層代理不同,Socks 代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。

  SOCKS是一組由Internal工程工作小組(IETF)所開發出來的開放軟件開放標准,用來處理網絡安全的事宜。SOCKS象一堵牆被夾在Internal服務器和客戶端之間,對於出入企業網絡的資訊提供流量和安全的管理。SOCKS這個名詞並不是一組英文字頭的縮寫,而是一個和TCP/IP的Socket端口有關的安全標准,一般防火牆系統通常是象網關(Gateway)一樣是作用在OSI模型的第七層也就是應用層上,對TCP/IP的高級協議,如Telnet、FTP、HTTP和SMTP加以管制,而SOCKS作用在OSI模型的第五層(如下圖的七層模型)也就是會話層上,象一個代理一樣對客戶端到服務器端或服務器和服務器之間的數據聯系,提供安全上的服務。由於SOCKS作用在會話層上,因此它是一個提供會話層到會話層間安全服務的方案,不受高層應用程序變更的影響。

4、SOCKS4、SOCKS5、HTTP、FTP代理的區別

  SOCKS4和SOCKS5具體表現在SOCKS4只能代理TCP協議,而SOCKS5什么協議都可以代理,而QQ使用的是UDP協議,所以它不能使用SOCKS4代理,而象國外的ICQ使用比UDP協議安全的TCP協議,所以就可以使用SOCKS4代理。
  對於SOCKS代理和HTTP代理從上文我們知道SOCKS工作在會話層上,而HTTP工作在應用層上,SOCKS代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求),所以SOCKS代理服務器比應用層代理服務器要快得多。
  firefox代理設置HTTP代理、SOCKS代理和FTP代理等的區別:通常按照不同的用途選擇不同的代理:瀏覽器用HTTP或SOCKS代理、下載軟件用HTTP或SOCKS代理、上傳軟件用FTP或SOCKS代理、其他方面(聊天,MUD游戲等)一般用SOCKS代理。SOCKS代理使用范圍很廣,但SOCKS有SOCK4和SOCK5之分。其中SOCK4只支持TCP協議,SOCK5支持TCP和UDP協議,還支持身份驗證、服務器端域名解釋等。SOCK4能干的SOCK5都可以干,反過來就不行。我們常用的聊天軟件(如QQ),起初就一直用的是UDP協議,所以只能用SOCK5的代理。

 

二、VPN代理原理介紹

VPN,Virtual Private Network(虛擬專用網絡),被定義為通過一個公用網絡(通常是因特網)建立一個臨時的、安全的連接,是一條穿過公用網絡的安全、穩定的隧道。VPN 有很多種實現方式,常見的有PPTP,L2TP ,L2TP over IPSEC等等。下圖是兩種VPN代理的網絡拓撲圖。

以OSI 模型參照標准,不同的VPN術可以在不同的OSI協議層實現。如下:

VPN在OSI中的層次 VPN實現技術 
應用層                 SSL VPN 
會話層                 Socks5 VPN 
網絡層                 IPSec VPN 
數據鏈路層              PPTP及L2TP
 

1、隧道技術

隧道技術的基本過程是在源局域網與公網的接口處將數據(可以是OSI七層模型中的數據鏈路層或網絡層數據)作為負載封裝在一種可以在公網上傳輸的數 據格式中,在目的局域網與公網的接口處將數據解封裝,取出負載。被封裝的數據包在互聯網上傳遞時所經過的邏輯路徑被稱為“隧道”。

2、PPTP VPN技術

PPTP(點到點隧道協議)是由PPTP論壇開發的點到點的安全隧道協議,為使用電話上網的用戶提供安全VPN業務,1996年成為IETF草案。 PPTP是PPP協議的一種擴展,提供了在IP網上建立多協議的安全VPN的通信方式,遠端用戶能夠通過任何支持PPTP的ISP訪問企業的專用網絡。

PPTP使用一個TCP連接對隧道進行維護,使用通用路由封裝(GRE)技術把數據封裝成PPP數據楨通過隧道傳送。可以對封裝PPP楨中的負載數據進行加密或壓縮。
下邊簡單描述PPTP 過程中涉及的封裝和解封步驟。
封裝
1)數據封裝於IP(或IPX和NetBEUI)封包中。
2)該IP(或IPX和NetBEUI)封包封裝在PPP幀中。
3)該PPP 幀封裝在GRE 幀中(並加密)。
4)該GRE 幀封裝在IP 封包中。

解封
1)移除IP 包頭。
2)移除GRE 包頭(解密過程)。GRE負載中是一個PPP幀。
3)移除PPP 包頭。
4)將該IP(或IPX和NetBEUI)封包路由到其最終的目的地。

MPPE將通過由MS-CHAP、MS-CHAP v2或EAP-TLS身份驗證過程所生成的加密密鑰對PPP幀進行加密。為對PPP幀中所包含的有效數據進行加密,虛擬專用網絡客戶端必須使用MS- CHAP、MS-CHAP v2或EAP-TLS身份驗證協議。PPTP將利用底層PPP加密功能並直接對原先經過加密的PPP幀進行封裝。

PPTP協議將控制包與數據包分開,控制包采用TCP控制,客戶端連接到VPN服務器TCP1723端口,用於控制和管理VPN隧道的功能。;數據包部分先封裝在PPP協議中,然后封裝到GRE V2協議中,最后封裝到IP協議中傳送。

可以看出來,VPN技術主要應用於IP層及以下,因此不依賴與具體的應用,所以可以實現全局代理。

三、PAC代理

  一個PAC文件包含一個JavaScript形式的函數“FindProxyForURL(url, host)”。這個函數返回一個包含一個或多個訪問規則的字符串。用戶代理根據這些規則適用一個特定的代理其或者直接訪問。 當一個代理服務器無法響應的時候,多個訪問規則提供了其他的后備訪問方法。 瀏覽器在訪問其他頁面以前,首先訪問這個PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通過網頁的網絡代理自發現協議(Web Proxy Autodiscovery Protocol)自動配置的。

現代的瀏覽器實現了幾個級別的自動化;用戶可以選擇最適合他們需要的級別。下面的這些方法被普遍的實現:
  • 手動代理配置:為所有的URLs規定一個主機名和端口作為代理。大多數瀏覽器允許用戶規定一個域名的列表(例如 localhost),訪問這個列表里面的域名的時候不通過代理服務器。
  • 代理自動配置(PAC):規定一個指向PAC文件的URL,這個文件中包括一個JavaScript函數來確定訪問每個URL時所選用的合適代理。這個方法更加適合需要幾個不同代理配置的筆記本用戶,或者有很多不同代理服務器的復雜的企業級設置。這個就是我們在本文中所要討論的。
  • 網絡代理自發現協議(WPAD): 瀏覽器通過DHCP和DNS的查詢來搜索PAC文件的位置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM