網絡協議之:還在用HTTP代理?弱爆了!快試試SOCKS5 簡介 爲什麼要使用SOCKS SOCKS5 SOCKS5的使用 總結

簡介

存在即是合理,SOCKS5的出現是爲了解決SOCKS4中不支持身份認證的大問題而出現的,畢竟大家對網絡中的安全越來越重視了。沒有認證的網絡就好像是生活在攝像頭下的人生,毫無隱私可言,實在是太可怕了。

今天給大家深入講解一下SOCKS5和它的應用。

爲什麼要使用SOCKS

SOCKS是一種代理服務協議,爲什麼會要有代理服務協議呢?

因爲在現代網絡中,很多情況下,由於網絡或者防火牆的原因,我們很難直接去訪問對方的網絡,所以需要一種代理機制來充當本地網絡和大型網絡之間的網關。

代理服務器通過攔截髮送方和接收方之間的連接來工作。 所有傳入的數據都通過一個端口進入,並通過另一個端口轉發到目標網絡中。

當然流量轉發是代理服務器的最基本的功能,代理服務器還可以通過隱藏客戶端或者服務器端的IP地址,從而實現網絡訪問的安全性。另外因爲代理服務器充當了目標服務器的代理,所以可以將代理服務器作爲目標服務器的緩存服務器,從而提高網絡訪問效率。

另外代理服務器還可以通過對數據進行攔截,從而進行一些特殊的操作,比如對數據進行加密,從而保證數據傳輸的安全性。另外代理服務器還可以對客戶端的訪問進行控制,比如可以阻止客戶端訪問某個IP地址或者網站。

而SOCKS就是一種代理協議的標準,通過這種協議,可以實現標準的代理服務。

在企業級網絡中,爲了保證企業網絡的安全性,通常會有安裝上防火牆,這樣雖然保證了企業網絡的安全,但是也阻止了客戶端對外界網絡的訪問。所以需要一個SOCKS 代理服務器來代替客戶端和目標網站之間建立連接和進行數據通信。

SOCKS代理可以繞過防火牆來中繼用戶的TCP和UDP會話。

SOCKS5

因爲SOCKS是運行在OSI七層協議中的第五層會話層,所以它可以處理包括HTTP、HTTPS、POP3、SMTP 和 FTP等多種請求類型,所以可以使用SOCKS協議來進行郵件發送、網頁瀏覽、文件傳輸等。

相對於SOCK4來說,SOCKS5加入了認證機制,所以可以通過身份驗證建立完整的TCP連接,SOCKS5通常和SSH一起使用,通過使用SSH加密隧道方法來中繼流量。

那麼爲什麼我們需要使用SOCKS5呢?

首先我們可以通過SOCKS5來訪問防火牆後面的服務。

一般來說,爲了安全起見,服務器都放在防火牆後面,但是外部的人想要訪問該服務器的話,有兩種辦法。第一種就是去掉防火牆,向公衆開放該服務,但是這樣會帶來安全的風險。第二種就是通過設置客戶端的IP白名單,來過濾非法的訪問請求。但是客戶端的IP地址通常是會發送變化的,所以這種做法也是不可行的。

如果使用SOCKS5的SSH代理,就可以通過代理服務器來訪問防火牆後面的服務,從而保證服務的安全性。

另外,通過建立SSH隧道,在其中使用SOCKS5協議將各種TCP和UDP流量路由到各自的服務,那麼只需要使用SSH,而不需要使用其他VPN網絡。所以使用起來比較簡單。

最後,因爲SOCKS5只是對數據進行轉發,所以出錯的可能性更小,性能會更高。

SOCKS5的使用

上面我們介紹了SOCKS5的各種優點,那麼SOCKS5到底該如何使用呢?接下來向大家介紹一個使用ssh命令搭建一個簡單的SOCKS5代理服務器。

先看下SSH建立SOCKS服務的命令:

ssh -f -C -N -D bindaddress:port name@server

-f 表示SSH作爲守護進程進入後臺執行。

-N 表示不執行遠程命令,只用於端口轉發。

-D 表示是端口上的動態轉發。這個命令支持SOCKS4和SOCKS5。

-C 表示發送前壓縮數據。

bindaddress 本地服務器的綁定地址。

port 表示本地服務器的指定偵聽端口。

name 表示ssh服務器登錄名。

server表示ssh服務器地址。

上面命令的意思是,在本機建立端口綁定,然後將其轉發到遠程的代理服務器上。

比如我們可以在本機開一個2000的端口,將其轉發到遠程168.121.100.23這臺機子上:

ssh -f -N -D 0.0.0.0:2000 [email protected]

有了代理服務器之後,就可以使用了,首先介紹一個怎麼在curl命令中使用SOCKS代理。

我們想通過代理服務器,訪問www.flydean.com,該怎麼做呢?

curl -x socks5h://localhost:2000 -v -k -X GET http://www.flydean.com:80

要想檢測SOCKS的連接,還可以使用netcat命令如下:

ncat –proxy 127.0.0.1:2000 –proxy-type socks5 www.flydean.com 80 -nv

總結

SOCKS5是一個非常有用的代理協議,你可以在需要的時候用上它。你懂的!

本文已收錄於 http://www.flydean.com/10-socks5-more/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,衆多你不知道的小技巧等你來發現!

歡迎關注我的公衆號:「程序那些事」,懂技術,更懂你!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章