2023年12月5日發(作者:晚心)

SOCKS 5代理 使用手冊
一.簡單介紹
SOCKS5代理,在網絡傳輸的過程中充當中間傳遞者的角色,并且以它速度快、傳輸協議廣泛和易用性獲得了多方面的認可,例如LeapFTP、FlashGat、QQ等各個類型網絡軟件都支持SOCKS5代理就是最好的證明。
在實際應用中最常用的功能有2方面:
1、偽裝來源
大家都知道當“客戶”組件與“服務器”組件建立連接的時候,服務器是可以取回客戶的連接地址的,有時候為了某種原因大家可能會不想讓服務器知道客戶的地址,那么可以通過SOCKS5代理連接“服務器”組件,這樣在“服務器”組建那里得到的客戶地址就是SOCKS5代理服務器的地址,從而達到隱藏真實地址的目的。
2、局域網通信
在網絡飛速發展的今天,局域網內多機公用一個IP地址的實際組網結構已經是司空見慣了,但是這給網絡通信帶來了巨大的困難,局域網內部與外部的連接、不同局域網之間的連接,已經成了很擾人的一件事,而通過SOCKS5代理就是一種理想的解決方法。
如果要使用SOCKS5代理就需要1臺支持SOCKS5代理的服務器,可以是從網絡上尋找的免費代理,也可以自己架設個SOCKS5代理服務器。如果該服務器是需要身份驗證的,那么你就需要從管理員那里的得到用戶名、密碼才可以正常的使用。
架設SOCKS5代理服務器的軟件有:Ccproxy。
SOCKS5 的基本通信過程,假設現在需要使A機通過代理服務器連接B機,在連接的時候先用A連接代理服務器,然后讓代理服務器再連接B機,當連接成功以后,A、B機就可以正常的通信了,但是無論數據是A機發向B機還是B機發向A機都是通過代理服務器轉發的。
代理服務器
A機 B機
所以數據傳輸的流暢性很大程度上取決于您選擇的代理服務器的性能優良。
二.認識SOCKS5協議
如果您的機器具有一個合法的Internet IP地址,或者您利用自己機器上的調制解調器撥號上網,可以自由和Internet上任何主機溝通,那么您通常不必關心 SOCKS5 協議。
SOCKS5協議對于處在內部網絡中的機器,需要透過網絡中某些可以聯通外部 Internet 的
1 機器訪問外部時有用。
SOCKS5是一個代理協議,它在使用 TCP/IP協議通訊的前端機器和服務器機器之間扮演一個中介角色,使得內部網中的前端機器變得能夠訪問Internet網中的服務器,或者使通訊更加安全。
SOCKS5 服務器通過將前端發來的請求轉發給真正的目標服務器, 模擬了一個前端的行為。在這里,前端和SOCKS5之間也是通過TCP/IP協議進行通訊,前端將原本要發送給真正服務器的請求發送給SOCKS5服務器,然后SOCKS5服務器將請求轉發給真正的服務器。SOCKS5服務器在將通訊請求發送給真正服務器的過程中,對于請求數據包本身不加任何改變。SOCKS5服務器接收到真正服務器的響應后,也原樣轉發給前端。
因此,SOCKS5 協議是一種代理協議,對于各種基于 TCP/IP的應用層協議都能夠適應,幾乎是萬能的。它雖然不能理解自己轉發的數據的內部結構,但是它能夠忠實地轉發通訊包,完成協議本來要完成的功能。
與SOCKS5協議不同,HTTP代理是通過HTTP協議進行的,HTTP代理服務器軟件了解通訊包的內部結構,在轉發過程中還要對通訊進行某種程序的修改和轉換。和HTTP代理協議不同,SOCKS5實際上是一個傳輸層的代理協議。
可以想象,如果每個具體的應用層協議都要設計對應的代理協議表達辦法,一個特定的代理服務器無論如何也支持不過來那么多新出現的協議。因此,可以說SOCKS5的出現緩解了各種具體協議需要專門設計代理協議的困難局面。
不過,并不是凡是使用基于TCP/IP協議的應用協議的軟件,都可以無條件地透過SOCKS5服務器進行通訊,還要求前端軟件本身具有SOCKS5的接口,才能利用SOCKS5代理服務器。
一個支持SOCKS5協議的前端,通常具有兩種運行狀態:
1、直接通訊狀態,不使用SOCKS5接口。這時的通訊是針對最終服務器進行的。
2、SOCKS5狀態。使用 SOCKS5 接口將本來要發送給最終服務器的請求發送給 SOCKS5
服務器。在前端和 SOCKS5 服務器進行初始化會話的時候,前端告訴了 SOCKS5 服務器關于最終服務器的 IP 地址和端口信息,所以 SOCKS5服務器能夠忠實按照前端的要求啟動和最終服務器的通訊過程。
應用實例如下:
·用SOCKS代理上QQ,可隱藏真實IP地址,方法如下:
1.啟動QQ,登陸后右擊下方開始菜單處的QQ小圖標,選擇“系統參數”→“網絡設置”
2.在服務器地址與端口處填QQ服務器地址,最好數字的。如5202.104.129.2515端口:8000
3.在“使用SOCKS5代理服務器”前打上勾,在“代理服務器地址”與“端口號”處,(QQ代理的端口號一般為1080)分別填上最新SOCKS代理(SOCKS4也可用)。
4.在“校驗用戶名”與“校驗用戶密碼”處全部刪空,然后點“測試”,如能通過,則說明代理服務器工作正常,否則換一個。
5.按“確定”,點擊任務欄的QQ小圖標,先離線再上線即可。
·在FTP軟件中我們可以使用SOCKS4/SOCKS5代理服務器,常見的FTP工具中的代理設置方法如下:
1.FlashFXP3.0以前版本中設置代理:菜單欄“選項”→參數設置→代理和防火墻,然后在“代理服務器”項中選擇代理類型,填寫代理。
2.FlashFXP3.0以后版本中設置代理:菜單欄“選項”→參數設置→連接,然后在“代理
2 服務器”項中選擇代理類型,填寫代理。
3.CuteFTP XP 5.0.2 中文版中設置代理:菜單欄“編輯”→設置→連接→SOCKS→選擇代理類型,如SOCKS4或者SOCKS5,并填寫代理
4.LeapFtp中設置代理:菜單欄“選項”→參數設置→常規→代理,將“使用代理”前面的方框鉤上,然后填寫代理,并將下面的SOCKS防火墻鉤上。
三.向導的使用
步驟1:這是歡迎界面,概要的說明SOCKS5代理,單擊“下一步”。
步驟2:選擇一種代理模式,如果在您的程序里是第一次本向導,請選中“創建SOCKS代理窗口”,如果在程序里已經創建過就不需要選中。
關于代理方式,可以多選,也可以單選。
3
步驟3:設置代理服務器,請根據您找到的代理填寫數據,如果您的代理服務器需要用戶名與密碼,請選中“需要身份驗證”并填寫用戶名和密碼,如果您手里沒有現成的代理服務器,可以按“尋找免費的SOCKS5代理”按鈕,可以在網上尋找到免費的代理,不過這些代理天南地北的哪里都有不是很穩定,所以如果想做實用軟件,請您自己建立個代理服務器。
如果您暫時不填寫也可以在 向導創建出的“SOCKS5代理窗口”里設置也可以。
注意:在程序的執行過程中可以通過更改“SOCKS5代理窗口”里的屬性來達到動態連接不同代理服務器的目的。
步驟4:完成向導,如果是第一次使用可以選中“打開例程”。
4
四.使用例程
用本向導完成設置以后(請使用“打開例程”),就可以使用SOCKS5 代理了,生成的程序使用了類模塊+數組變量的方法,當每次新建一個連接的時候實際上就是新建了一個數組成員,他們之間會互不干預的完成好自己的工作,您只需要了解,怎么用他們發送數據和接收數據就可以了。
當您同時使用了3種模式以后,大家看看自己的程序里會有哪些變化。如下圖所示:
從上圖可以看出新加了以下:3個類、3個全局變量、一個代理窗口,根據你選擇的不同代理模式也會有所不同。
在使用之前您需要設置一下SOCKS5代理服務器的地址和端口,如果需要的話還需要輸入用戶名和密碼(如果在向導已經設置 此步驟可以跳過)。
5
下面通過使用連接模式的實例看看到底怎樣使用SOCKS代理。
先用向導創建帶例程的代碼。
·連接模式
現在來看看如何連接,雙擊“新建連接”看看需要做什么:
代碼如下:
大家可以清楚地看到,只有3行代碼,分別解釋如下:
第一行:這里先用個局部變量連接,參數表如下:
子程序名:連接
參數<1>的名稱為“處理子程序”,類型為“子程序指針”。注明:參見本子程序內部的注釋部分,需要一個文本型參數。這里用這個子程序來處理各種事件,例如:收到數據、連接成功、連接錯誤等等。
參數<2>的名稱為“目的服務器地址”,類型為“文本型”。注明:可以為域名或ip地址。
參數<3>的名稱為“目的服務器端口”,類型為“整數型”。
6
第二行:把這個局部變量加入到全局變量,注意這一步是非常必要的,只有加入到全局變量程序才可以正常的運行。
第三行:顯示一下現在多少個連接數。
下面著重介紹一下:“處理子程序”。通過這個子程序,大家可以了解許多東西,注意這個子程序有個文本型參數,這個參數由2部分組成,第一位文本表示的是這個事件的類型,除第一位以外的文本表示的是數組成員編號,為了簡單的取得“第一位文本”和“剩下的文本”,程序中分別做了兩個子程序來方便處理,代碼是:
<整數型>取指令標記(參數)
<整數型>取指令數組標志(參數)
下面是一個用戶自定義子程序,主要是顯示了各種消息,大家可以參考看看:
大家可以看到,根據“取指令標記(參數)”返回的不同,得到的信息也不一樣,其具體意義表示:
' 0:實際數據 可用 取回數據() 返回實際數據
' 1:未知的連接方式(除無身份驗證和用戶名/密碼方式以外的)
' 2:用戶名或密碼錯誤
' 3:連接目標服務器時錯誤
' 4:連接成功
' 9:連接斷開
例如當程序收到“4”以后就說明連接成功了,如果以后收到“0”則表明收到了數據,可以用以下代碼:
代理服務器_TCP_客戶 [取指令數組標志 (參數)].取回數據 ()
取回數據。直到返回“9”說明連接斷開。
下面看看如何發送數據,雙擊代理測試窗口中的“發送”按鈕來看看代碼:
7
這里需要注意,程序是通過全局變量的數組成員來發送數據,所以需要知道到底用哪個數組。所以這里需要驗證一下是否數組越界。
這樣程序中連接模式的功能就全部介紹完了,大家可以實際演練一下,過程是:新建一個易程序,然后新建個空白窗口放入如下組件:服務器、按鈕、標簽、編輯框。然后輸入代碼,讓標簽顯示服務器進入的客戶地址,讓按鈕把編輯框的內容發送出去,如下圖所示:
8
大家發現沒有,程序雖然是通過代理服務器和這個服務器組件來連接的,但是和普通的客戶組件直接連接沒有任何的區別。
現在大家一起運行2個程序,因為是本機連接自己,所以在地址欄中輸入本機的地址和端口,然后按“新建連接”。
當提示“連接成功”以后表示連接成功。
注意:紅矩形內顯示1 ,因為剛才程序中新加入了個全局變量成員。
下面大家看看有服務器組件那個窗口,如下圖所示:
9 注意:標簽里顯示的并不是實際的客戶組件地址,是代理服務器的地址,表明已通過代理連接成功。現在兩個程序相互發送數據看看。如下圖所示:
現在為大家總結一下整個過程,當新連接的時候先用個局部變量連接并關聯個處理的子程序,然后把這個局部變量加入到全局變量,此后所有的事件處理都在那個處理子程序內部完成。
·監聽模式
這個模式以及下面的UDP模式都和連接模式的使用方法基本一樣,都是先用局部變量連接并關聯個子程序,然后再加入全局變量,然后通過那個子程序的獲得各種消息,大家雙擊監聽模式里的“連接”按鈕來看看代碼就明白了。
10 看看是不是和連接模式差不多呢?
大家再來看看這個連接的子程序:
大家可以看到,根據“取指令標記(參數)”返回的不同,得到的信息也不一樣,其具體意義表示如下:
' 0:實際數據 可用 取回數據() 返回實際數據
' 1:未知的連接方式(除無身份驗證和用戶名/密碼方式以外的)
' 2:用戶名或密碼錯誤
' 3:綁定失敗
' 4:綁定成功 可采用 取回端口() 返回監聽的窗口
' 5:客戶進入 可采用 取回地址() 返回連接文本 和格式:“IP:端口”
' 9:連接斷開
注意:并不是所有的代理服務器都支持這個模式,一般網上免費的代理都只支持連接模式,大家可以自己架設一個簡易的代理平臺,例如最常用的CCProxy就是個不錯的代理服務器軟件,大家可以找來看看,試用版只允許3個用戶,但對于實驗來說已經足夠了。
由于現在是在代理的服務器上監聽一個端口,所以這個端口也只能夠有服務器分發,不
11
能自定義,服務器給你哪個,你就只能監聽哪個,并且當一個客戶進入以后就不能再有第二個客戶連接了,否則會迫使客戶與服務器斷開連接,最好的解決辦法就是新建個代理發送部分和連接模式一樣。大家可以自行學習。
·UDP模式
這個模式和監聽模式用法一樣,大家就自行學習吧,不過需要注意端口沖突問題,每個成員都會占用你本機的1個端口。
注意:這個端口并不是代理服務器給你開的端口,致使你和代理服務器之間通信的端口,如果你不明白的話,就記住不要讓這個端口被重復占用就可以了。
12
本文發布于:2023-12-05 17:38:09,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1701769090236599.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:SOCKS 5代理使用手冊1.0.doc
本文 PDF 下載地址:SOCKS 5代理使用手冊1.0.pdf
| 留言與評論(共有 0 條評論) |