作者:吳煥政,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心
SOCKS5協(xié)議在網(wǎng)絡(luò)代理和隧道技術(shù)方面具有廣泛的應(yīng)用,為用戶提供了更安全、更自由的網(wǎng)絡(luò)訪問體驗(yàn)。
Part 01●??Socks5協(xié)議概念?●
Socks5是一個(gè)代理協(xié)議,它在使用TCP/IP協(xié)議通訊的前端機(jī)器和服務(wù)器之間扮演一個(gè)中間角色,使得內(nèi)部網(wǎng)中的前端機(jī)器能夠訪問Internet網(wǎng)中的服務(wù)器。相比于早期的SOCKS協(xié)議版本,SOCKS5具有以下主要功能和特點(diǎn):
(1)支持IPv4和IPv6:SOCKS5協(xié)議可以同時(shí)支持IPv4和IPv6地址,適應(yīng)不同網(wǎng)絡(luò)環(huán)境的需求。
(2)用戶驗(yàn)證:SOCKS5支持多種用戶驗(yàn)證方式,如用戶名/密碼認(rèn)證、GSS-API認(rèn)證等,增加了連接的安全性。
(3)數(shù)據(jù)加密:SOCKS5協(xié)議可以通過TLS/SSL等加密協(xié)議對(duì)數(shù)據(jù)進(jìn)行加密,保護(hù)數(shù)據(jù)的安全性。
(4)UDP轉(zhuǎn)發(fā):相比于SOCKS4協(xié)議,SOCKS5協(xié)議支持UDP轉(zhuǎn)發(fā),可以在代理連接中傳輸U(kuò)DP數(shù)據(jù)。
常用的socks5代理軟件有以下幾種。
Shadowsocks:一種開源的代理軟件,提供加密和隧道技術(shù),以保護(hù)數(shù)據(jù)傳輸的安全性。
Proxifier:一種流行的代理軟件,可以將網(wǎng)絡(luò)應(yīng)用程序通過SOCKS5代理連接到目標(biāo)服務(wù)器。
Dante:一個(gè)高性能的SOCKS5代理服務(wù)器,支持多種認(rèn)證方式和靈活的配置選項(xiàng)。
PuTTY:一個(gè)SSH和Telnet客戶端,也可以用作SOCKS5代理軟件,通過SSH隧道提供安全的代理連接。
OpenSSH:一個(gè)用于遠(yuǎn)程登錄和文件傳輸?shù)拈_源軟件,也可以配置為SOCKS5代理服務(wù)器。
Tor:一個(gè)匿名網(wǎng)絡(luò)工具,可以通過SOCKS5代理連接到Tor網(wǎng)絡(luò),保護(hù)用戶的隱私和匿名性。
Part 02●?Sock5協(xié)議交互過程?●
socks協(xié)議交互過程如下,交互細(xì)節(jié)見圖1,數(shù)據(jù)包格式見圖2。
(1) PC 發(fā)起訪問服務(wù)器的連接請(qǐng)求。
(2) 連接請(qǐng)求被 socks5 客戶端攔截,隨后 socks5 客戶端主動(dòng)跟 socks5 代理服務(wù)器建立 TCP 連接。
(3) socks5 客戶端主動(dòng)與 socks5 代理服務(wù)器進(jìn)行認(rèn)證。
(4) 認(rèn)證通過后,socks5 代理服務(wù)器主動(dòng)與服務(wù)器建立連接。若 PC發(fā)起的是TCP請(qǐng)求則建立TCP 請(qǐng)求連接,否則建立UDP 請(qǐng)求連接。
(5) 請(qǐng)求建立連接后 socks5 代理服務(wù)器與服務(wù)器之間進(jìn)行數(shù)據(jù)交互。
(6) socks5 代理服務(wù)器把數(shù)據(jù)通過 socket 轉(zhuǎn)發(fā)給 socks5 客戶端。
(7) socks5 客戶端把數(shù)據(jù)轉(zhuǎn)發(fā)給PC。
圖1 socks5協(xié)議交互流程
圖2 socks5 協(xié)議數(shù)據(jù)包格式
Part 03●??Sock5應(yīng)用場(chǎng)景?●
SOCKS5協(xié)議在多種應(yīng)用場(chǎng)景中發(fā)揮重要作用,以下是一些常見的應(yīng)用場(chǎng)景:
圖3 Socks5 常規(guī)部署拓?fù)?/p>
繞過網(wǎng)絡(luò)封鎖:在一些地區(qū)或組織中,可能存在網(wǎng)絡(luò)封鎖,限制用戶訪問特定的網(wǎng)站或服務(wù)。通過使用SOCKS5代理,用戶可以繞過這些封鎖,訪問被限制的內(nèi)容。
加速網(wǎng)絡(luò)連接:有時(shí),用戶可能會(huì)遇到網(wǎng)絡(luò)連接速度較慢或延遲較高的問題。通過使用SOCKS5代理,可以選擇更快的代理服務(wù)器,從而提高網(wǎng)絡(luò)連接速度和響應(yīng)時(shí)間。
繞過地理限制:某些網(wǎng)站或服務(wù)可能根據(jù)用戶所在的地理位置進(jìn)行限制,通過使用SOCKS5代理,用戶可以偽裝自己的IP地址,繞過地理限制,訪問被限制的內(nèi)容。
企業(yè)內(nèi)部網(wǎng)絡(luò):在企業(yè)內(nèi)部網(wǎng)絡(luò)中,使用SOCKS5代理可以實(shí)現(xiàn)對(duì)內(nèi)部資源的訪問控制和管理,提高網(wǎng)絡(luò)安全性和管理效率。
各種數(shù)據(jù)源通過Kafka接入到數(shù)據(jù)平臺(tái)層,數(shù)據(jù)平臺(tái)講明細(xì)數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)層的ClickHouse中,明細(xì)數(shù)據(jù)的存活時(shí)間可以根據(jù)業(yè)務(wù)需求設(shè)置。同時(shí)可以根據(jù)業(yè)務(wù)報(bào)表查詢的不同維度,利用ClickHouse的物化視圖形成預(yù)聚合數(shù)據(jù),提高數(shù)據(jù)查詢效率。由數(shù)據(jù)服務(wù)層的定時(shí)任務(wù)周期性地從ClickHouse的預(yù)聚合數(shù)據(jù)中查詢業(yè)務(wù)所需的展示數(shù)據(jù),把展示數(shù)據(jù)存入MySQL。由數(shù)據(jù)服務(wù)層的報(bào)表服務(wù)向數(shù)據(jù)展示層提供查詢服務(wù),報(bào)表服務(wù)直接查詢MySQL中的結(jié)果數(shù)據(jù),保證了查詢效率和并發(fā)性。
Part 04●??Sock5協(xié)議在家寬中的應(yīng)用?●
在家寬網(wǎng)絡(luò)環(huán)境中,為解決到網(wǎng)絡(luò)連接速度較慢或延遲較高的問題,提供差異化的高品質(zhì)的網(wǎng)絡(luò)體驗(yàn),中國(guó)移動(dòng)提供智能網(wǎng)絡(luò)智能加速服務(wù),通過socks5 tunnel把用戶流量導(dǎo)入加速網(wǎng)絡(luò),降低游戲訪問的時(shí)延,解決卡頓丟包等問題。此場(chǎng)景中socks5 client和socks5 server進(jìn)行了改造,client端直接發(fā)起socks5請(qǐng)求,server端接收請(qǐng)求并代理請(qǐng)求。
圖4 Socks5在家寬場(chǎng)景中拓?fù)?/p>
Part 05●?總結(jié)?●
SOCKS5協(xié)議是一種應(yīng)用層協(xié)議,用于在客戶端和代理服務(wù)器之間建立代理連接。它支持TCP和UDP傳輸協(xié)議,并能夠代理各種應(yīng)用層協(xié)議的連接。SOCKS5協(xié)議通過代理服務(wù)器中轉(zhuǎn)客戶端的請(qǐng)求,提供了繞過網(wǎng)絡(luò)封鎖、提高網(wǎng)絡(luò)安全性、加速網(wǎng)絡(luò)連接和繞過地理限制等功能。通過加密協(xié)議,SOCKS5協(xié)議可以保護(hù)數(shù)據(jù)的安全性??偟膩碚f,SOCKS5協(xié)議在網(wǎng)絡(luò)代理和隧道技術(shù)方面具有廣泛的應(yīng)用,為用戶提供了更安全、更自由的網(wǎng)絡(luò)訪問體驗(yàn)。
各種數(shù)據(jù)源通過Kafka接入到數(shù)據(jù)平臺(tái)層,數(shù)據(jù)平臺(tái)講明細(xì)數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)層的ClickHouse中,明細(xì)數(shù)據(jù)的存活時(shí)間可以根據(jù)業(yè)務(wù)需求設(shè)置。同時(shí)可以根據(jù)業(yè)務(wù)報(bào)表查詢的不同維度,利用ClickHouse的物化視圖形成預(yù)聚合數(shù)據(jù),提高數(shù)據(jù)查詢效率。由數(shù)據(jù)服務(wù)層的定時(shí)任務(wù)周期性地從ClickHouse的預(yù)聚合數(shù)據(jù)中查詢業(yè)務(wù)所需的展示數(shù)據(jù),把展示數(shù)據(jù)存入MySQL。由數(shù)據(jù)服務(wù)層的報(bào)表服務(wù)向數(shù)據(jù)展示層提供查詢服務(wù),報(bào)表服務(wù)直接查詢MySQL中的結(jié)果數(shù)據(jù),保證了查詢效率和并發(fā)性。