網路協議之:還在用HTTP代理?弱爆了!快試試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 //www.flydean.com:80

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

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

總結

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

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

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

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