亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

網(wǎng)絡(luò)代理:Socks5與Shadowsocks

admin
2025年7月13日 1:7 本文熱度 916

一、什么是網(wǎng)絡(luò)代理?


當(dāng)我們想訪(fǎng)問(wèn)一些不被允許或受限的網(wǎng)絡(luò)資源的時(shí)候,為了繞過(guò)公司網(wǎng)管的訪(fǎng)問(wèn)限制,我們可以將訪(fǎng)問(wèn)請(qǐng)求發(fā)送給一臺(tái)非受限主機(jī),然后讓它代理我們?nèi)ピL(fǎng)問(wèn)那些受限網(wǎng)絡(luò)資源,并將收到的響應(yīng)數(shù)據(jù)再傳送給我們,這樣我們就能夠通過(guò)這臺(tái)代理主機(jī)間接訪(fǎng)問(wèn)那些受限的網(wǎng)絡(luò)資源,這就是我們常說(shuō)的網(wǎng)絡(luò)代理。而這種代理我們(客戶(hù)端)訪(fǎng)問(wèn)特定網(wǎng)絡(luò)資源的網(wǎng)絡(luò)代理稱(chēng)為正向代理;相對(duì)于正向代理,代理服務(wù)器響應(yīng)客戶(hù)端訪(fǎng)問(wèn)請(qǐng)求的網(wǎng)絡(luò)代理稱(chēng)為反向代理,反向代理主要應(yīng)用于服務(wù)器集群架構(gòu)中。我們平時(shí)說(shuō)的網(wǎng)絡(luò)代理泛指正向代理,是日常上網(wǎng)較常見(jiàn)的。

網(wǎng)絡(luò)代理本質(zhì)就是一種數(shù)據(jù)中繼技術(shù),它的實(shí)現(xiàn)通常涉及四個(gè)組件:


1) 應(yīng)用程序,安裝在用戶(hù)終端內(nèi)的提供某種特定服務(wù)的客戶(hù)端程序,譬如瀏覽器。


2) 代理客戶(hù)端,安裝在用戶(hù)終端內(nèi)的負(fù)責(zé)監(jiān)聽(tīng)和截獲應(yīng)用程序?qū)W(wǎng)絡(luò)資源的訪(fǎng)問(wèn),并將收到的請(qǐng)求資源交付給應(yīng)用程序。


3) 代理服務(wù)器,一臺(tái)外部主機(jī),負(fù)責(zé)與目標(biāo)服務(wù)器建立通信連接,在代理客戶(hù)端和目標(biāo)服務(wù)器之間轉(zhuǎn)發(fā)用戶(hù)數(shù)據(jù)。


4) 目標(biāo)服務(wù)器,提供特定網(wǎng)絡(luò)資源的主機(jī)。


我們經(jīng)常說(shuō)的SSL VPN的Clientless和Thin-Client模式本質(zhì)上也是一種網(wǎng)絡(luò)代理技術(shù)。很多人將網(wǎng)絡(luò)代理視為VPN,實(shí)際上他們的工作原理并不相同,網(wǎng)絡(luò)代理通過(guò)代理服務(wù)器充當(dāng)中間人轉(zhuǎn)發(fā)用戶(hù)終端和目標(biāo)服務(wù)器之間的數(shù)據(jù)流量,從而繞過(guò)網(wǎng)絡(luò)限制訪(fǎng)問(wèn)那些受限的網(wǎng)絡(luò)資源。不僅如此,通過(guò)使用緩存機(jī)制網(wǎng)絡(luò)代理還能用于網(wǎng)絡(luò)加速,提高網(wǎng)絡(luò)訪(fǎng)問(wèn)速度,其中一個(gè)典型的應(yīng)用就是基于HTTP代理的網(wǎng)絡(luò)加速器。而VPN通常是通過(guò)在公共網(wǎng)絡(luò)基礎(chǔ)上利用加密/封裝技術(shù)構(gòu)建一個(gè)點(diǎn)到點(diǎn)的隧道,用戶(hù)通過(guò)這條隧道實(shí)現(xiàn)對(duì)特定資源(大多數(shù)是企業(yè)內(nèi)網(wǎng)資源)的訪(fǎng)問(wèn),其中一個(gè)最為典型的應(yīng)用是IPSec VPN。


二、Socks5與Shadowsocks

1. Socks5協(xié)議


Socks5是Socks協(xié)議的第五個(gè)版本,在Socks4的基礎(chǔ)上新增UDP轉(zhuǎn)發(fā)和認(rèn)證功能,是互聯(lián)網(wǎng)上最典型的一個(gè)網(wǎng)絡(luò)代理協(xié)議,它的基本工作原理如下圖所示:


圖片來(lái)源網(wǎng)絡(luò)


1) 首先Socks5客戶(hù)端與Socks5服務(wù)器TCP三次握手建立一條TCP連接。


2) 然后執(zhí)行Socks5握手,協(xié)商協(xié)議版本號(hào)、支持的認(rèn)證方法,對(duì)Socks5客戶(hù)端進(jìn)行認(rèn)證(如果配置了驗(yàn)證)。


3) Socks5協(xié)商和認(rèn)證成功后,當(dāng)用戶(hù)通過(guò)應(yīng)用程序訪(fǎng)問(wèn)特定網(wǎng)絡(luò)資源時(shí),Socks5客戶(hù)端監(jiān)聽(tīng)并截獲到應(yīng)用程序的訪(fǎng)問(wèn)請(qǐng)求,然后向Socks5服務(wù)器發(fā)起連接請(qǐng)求。請(qǐng)求的內(nèi)容包括,應(yīng)用程序要訪(fǎng)問(wèn)的目標(biāo)服務(wù)器ip地址或域名和端口等信息。


4) 收到客戶(hù)端的連接請(qǐng)求后,Socks5服務(wù)器和目標(biāo)服務(wù)器進(jìn)行TCP三次握手建立TCP連接。然后向Socks5客戶(hù)端發(fā)送一條Socks5響應(yīng)消息,通知對(duì)方到目標(biāo)服務(wù)器的連接已經(jīng)建立成功。


5) Socks5客戶(hù)端將收到的來(lái)自應(yīng)用程序的數(shù)據(jù)(可能是應(yīng)用層的數(shù)據(jù),也可能是傳輸層之上的數(shù)據(jù),譬如SSL協(xié)議報(bào)文)通過(guò)1)所建立的TCP連接原樣發(fā)送給Socks5服務(wù)器;Socks5服務(wù)器再將數(shù)據(jù)通過(guò)4)建立的TCP連接原樣發(fā)送給目標(biāo)服務(wù)器;目標(biāo)服務(wù)器收到應(yīng)用程序的數(shù)據(jù)后,反向?qū)㈨憫?yīng)數(shù)據(jù)發(fā)送給用戶(hù)端的應(yīng)用程序。

通過(guò)Socks5的工作過(guò)程不難發(fā)現(xiàn),Socks5網(wǎng)絡(luò)代理明文原樣轉(zhuǎn)發(fā)應(yīng)用程序和服務(wù)器之間交互的數(shù)據(jù),它自身沒(méi)有數(shù)據(jù)加密功能,為了保障傳輸過(guò)程中數(shù)據(jù)的機(jī)密性和完整性,通常需要依賴(lài)代理的上層應(yīng)用自身對(duì)數(shù)據(jù)進(jìn)行加密/完整性校驗(yàn)等處理。談到這里,想必大家最關(guān)心的問(wèn)題是,通過(guò)Socks5能夠繞過(guò)網(wǎng)管限制訪(fǎng)問(wèn)那些受限網(wǎng)絡(luò)資源嗎?答案是當(dāng)然不能。因?yàn)镾ocks5明文傳輸數(shù)據(jù),數(shù)據(jù)內(nèi)容一目了然,當(dāng)訪(fǎng)問(wèn)那些受限網(wǎng)絡(luò)資源時(shí),很容易被過(guò)濾掉,而且像Socks5/IPSec VPN這類(lèi)協(xié)議協(xié)議特性明顯,因?yàn)樗麄兊耐ㄐ艌?bào)文格式,協(xié)商過(guò)程等都是明文規(guī)范好的很容易識(shí)別,在沒(méi)有獲得公司網(wǎng)管授權(quán)的情況下,通常不會(huì)允許這種代理/VPN報(bào)文通過(guò)。


2. Shadowsocks協(xié)議


為了繞過(guò)公司網(wǎng)管的網(wǎng)絡(luò)限制,訪(fǎng)問(wèn)那些受限的網(wǎng)絡(luò)資源,需要解決網(wǎng)絡(luò)代理明文傳輸數(shù)據(jù)、協(xié)議特性明顯等問(wèn)題,避開(kāi)公司網(wǎng)管的火眼金睛。因此,有大神就在Socks5的基礎(chǔ)上開(kāi)發(fā)出了大名鼎鼎Shadowsocks協(xié)議也就是影梭。


首先看一下Shadowsocks網(wǎng)絡(luò)代理結(jié)構(gòu)和組件:



1) Socks5客戶(hù)端,安裝在用戶(hù)終端內(nèi),作為代理客戶(hù)端負(fù)責(zé)監(jiān)聽(tīng)和截獲應(yīng)用程序的訪(fǎng)問(wèn)請(qǐng)求,與Ss-local執(zhí)行Socks5握手協(xié)商、交互用戶(hù)數(shù)據(jù)。


2) Ss-local,同樣安裝在用戶(hù)終端內(nèi),沖當(dāng)Socks5服務(wù)器,負(fù)責(zé)與Socks5客戶(hù)端執(zhí)行握手、用戶(hù)數(shù)據(jù)交互,將用戶(hù)數(shù)據(jù)加密后發(fā)送給Ss-server。


3) Ss-server,一臺(tái)外部代理服務(wù)器,負(fù)責(zé)與目標(biāo)服務(wù)器建立通信連接,接收Ss-local加密的用戶(hù)數(shù)據(jù),解密后轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器,同時(shí)將收到的目標(biāo)服務(wù)器的響應(yīng)數(shù)據(jù)加密后發(fā)送給Ss-local。


4) 目標(biāo)服務(wù)器,提供特定網(wǎng)絡(luò)資源的主機(jī)。


從Shadowsocks代理結(jié)構(gòu)可以看出,Shadowsocks將Socks5服務(wù)器功能拆分成兩部分:


Ss-local作為Socks5服務(wù)器端,負(fù)責(zé)監(jiān)聽(tīng)Socks5 客戶(hù)端請(qǐng)求,與Socks5客戶(hù)端進(jìn)行 Socks5 協(xié)議相關(guān)的握手協(xié)商、處理連接請(qǐng)求、接收用戶(hù)數(shù)據(jù)。但它并不將用戶(hù)數(shù)據(jù)直接發(fā)送給目標(biāo)服務(wù)器,而是發(fā)送給Ss-server。Ss-server作為代理服務(wù)器,負(fù)責(zé)與目標(biāo)服務(wù)器建立通信連接,將用戶(hù)數(shù)據(jù)轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器。


這樣做的好處是,Socks5客戶(hù)端和Ss-local都是安裝在用戶(hù)終端內(nèi),Socks5協(xié)議握手協(xié)商是在本地完成的,降低了網(wǎng)絡(luò)延時(shí),加快Socks5協(xié)商過(guò)程,并且隱藏了Socks5握手過(guò)程中的協(xié)議特征。


注:Ss-local和Ss-server之間并不運(yùn)行Socks5握手協(xié)商。


Ss-local與Ss-server之間運(yùn)行自定義的Shadowsocks協(xié)議,它定義了數(shù)據(jù)傳輸規(guī)則、數(shù)據(jù)加解密算法(AEAD加密/流加密)、預(yù)共享密鑰方式的身份驗(yàn)證、數(shù)據(jù)混淆插件等,對(duì)傳輸?shù)挠脩?hù)數(shù)據(jù)進(jìn)行加密處理,這樣就保證了數(shù)據(jù)的機(jī)密性。同時(shí)可以使用數(shù)據(jù)混淆插件(simple-obfs)對(duì)加密后的數(shù)據(jù)進(jìn)行混淆去掉流量特征,把Ss-local和Ss-server之間的流量偽裝成普通的TCP或UDP流量。


注:Ss-local與Ss-server之間它們之間并不進(jìn)行密鑰協(xié)商和交換。加密密鑰通過(guò)什么算法產(chǎn)生的,本人并沒(méi)有深入了解,有興趣的朋友可以查看一些相關(guān)文章。


Ss-local發(fā)送給Ss-server加密前的數(shù)據(jù)格式為:



target address:目標(biāo)服務(wù)器的IP地址或域名以及端口號(hào),它的格式為:

[1-byte type][variable-length host][2-byte port]

type:地址類(lèi)型

10x01: host是一個(gè)4-byte的IPV4地址。2. 0x03: host是一個(gè)變長(zhǎng)字符串。第一個(gè)byte是一個(gè)變長(zhǎng)字符串長(zhǎng)度, 接下來(lái)是一個(gè)最長(zhǎng)255byte的域名。

3. 0x04: host是一個(gè)IPV6地址。

port:端口號(hào)

payload:用戶(hù)數(shù)據(jù)


注:Ss-server發(fā)送給Ss-local加密前的數(shù)據(jù)格式不含target字段。


Ss-local和Ss-server之間傳輸?shù)募用芎蟮臄?shù)據(jù)格式為:


?
使用流加密后的數(shù)據(jù)格式


使用AEAD加密后的數(shù)據(jù)格式,只有數(shù)據(jù)流的首包攜帶salt,用于計(jì)算解密KEY。
[salt][encrypted length][length tag][encrypted payload][payload tag]

最后我們看一下Shadowsocks的基本工作過(guò)程:


1) Socks5客戶(hù)端與Ss-local建立TCP連接,進(jìn)行Socks5握手協(xié)商。


2) Socks5客戶(hù)端截獲應(yīng)用程序的網(wǎng)絡(luò)訪(fǎng)問(wèn)請(qǐng)求后,向Ss-local發(fā)送連接請(qǐng)求。


3) Ss-local收到客戶(hù)端的連接請(qǐng)求后,向Ss-server發(fā)起TCP三次握手,建立TCP連接。然后向Socks5客戶(hù)端發(fā)送一條Socks5響應(yīng)消息,通知對(duì)方連接成功。


4) Socks5客戶(hù)端將用戶(hù)數(shù)據(jù)發(fā)送給Ss-local,Ss-local對(duì)用戶(hù)數(shù)據(jù)進(jìn)行加密和混淆(可選)處理后,發(fā)送給Ss-server。


5) Ss-server解密收到的用戶(hù)數(shù)據(jù),并根據(jù)target字段解析出目標(biāo)服務(wù)器的IP地址/域名以及端口號(hào)。然后向目標(biāo)服務(wù)器發(fā)起TCP三次握手,建立TCP連接,將用戶(hù)數(shù)據(jù)轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器。目標(biāo)服務(wù)器將響應(yīng)數(shù)據(jù)再反向發(fā)送給應(yīng)用程序。


正所謂道高一尺魔高一丈,隨著網(wǎng)絡(luò)監(jiān)管技術(shù)的不斷發(fā)展和提高,Shadowsocks也在不斷地演變和進(jìn)化,以滿(mǎn)足一些人科學(xué)上網(wǎng)的需求。


閱讀原文:原文鏈接


該文章在 2025/7/14 18:42:04 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved