Socket Secure (SOCKS) 是一種網路通訊協定,代理伺服器會藉此在伺服器和用戶端之間路由網路封包。SOCKS5 也提供驗證功能,僅允許通過驗證的使用者存取伺服器。SOCKS 伺服器會透過 TCP 連上特定 IP 位址,並提供遞送 UDP 封包的數值。
SOCKS 依據開放系統互相連線參照模型的第 5 層運作,亦即傳輸層、展示層間的中介工作階段層。
與 HTTP 代理伺服器之比較
相較於 HTTP 代理伺服器,SOCKS 會在較低層級運作:SOCKS 具有握手通訊協定的優勢,可告知代理伺服器軟體,用戶端正試圖建立連線,並盡可能讓執行狀態透明化。另一方面,HTTP 代理伺服器能解讀並複製標頭(例如,藉此調用另一個基礎通訊協定,像是檔案傳輸通訊協定 (FTP);不過,HTTP 代理伺服器通常會將 HTTP 請求轉發至符合資格的 HTTP 伺服器)。雖然 HTTP 代理伺服器主軸為變化模式,但 CONNECT 方法有利於轉發 TCP 連線。儘管如此,SOCKS 代理伺服器可反向操作,並將 UDP 流量轉發出去,這點是 HTTP 代理伺服器所做不到的。HTTP 代理伺服器通常較重視 HTTP 通訊協定,且會在較高層級的篩選機制中運作。然而,這多半僅適用於 POST 和 GET 方法,而不適合 CONNECT 方法。
SOCKS
在此提供一個範例:Rob 想透過網路和 Jack 進行通訊,但雙方之間有個防火牆在那端網路運作。因此,Rob 沒有直接連結 Jack 的權限。所以,Rob 透過自己的網路連結 SOCKS 代理伺服器,並告知 SOCKS 代理伺服器他想和 Jack 建立連線。SOCKS 代理伺服器透過防火牆啟動連線,並移除掉 Rob 和 Jack 通訊間的麻煩。
HTTP
更新: 誠如一個月前所公告的內容,NordVPN 將不再支援 HTTP 代理伺服器。 點選此處瞭解詳情。
Jack 擁有執行網頁伺服器的權限,而 Rob 希望從網頁下載內容。Rob 無法直接加入 Jack 的伺服器,因為他的網路中設有防火牆。如要與該伺服器連線,Rob 必須連上他的網路 HTTP 代理伺服器。他的網頁瀏覽器可直接連上代理伺服器,而連線方式就如同直接與 Jack 的伺服器通訊一樣。系統隨即傳輸標準 HTTP 請求標頭。HTTP 代理伺服器連上 Jack 的伺服器,接著又將 Jack 伺服器上的資料傳回給 Rob。
歡迎參考 NordVPN 的 YouTube 頻道!