SOCKS5代理

SOCKS協議

SOCKS:防火牆安全會話轉換協議 (Socks: Protocol for sessions traversal across firewall securely) SOCKS協議提供一個框架,爲在 TCP和UDP域中的客戶機/服務器應用程序能更方便安全地使用網絡防火牆所提供的服務。協議工作在OSI參考模型的第5層(會話層),使用TCP協議傳輸數據,因而不提供如傳遞 ICMP信息之類的網絡層網關服務。

SOCKS代理

採用socks協議的代理服務器就是SOCKS服務器,是一種通用的代理服務器,電路級的底層網關,DavidKoblas在1990年開發的。Internet RFC標準的開放標準。Socks 不要求應用程序遵循特定的操作系統平臺,Socks 代理與應用層代理、 HTTP 層代理不同,Socks 代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。

它通常綁定在代理服務器的1080端口上。如果在企業網或校園網上,需要透過防火牆或通過代理服務器訪問 Internet就可能需要使用SOCKS。
SOCKS工作在會話層上,而HTTP工作在應用層上,SOCKS代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求),所以SOCKS代理服務器比應用層代理服務器要快得多。

通常按照不同的用途選擇不同的代理:瀏覽器用HTTP或SOCKS代理、下載軟件用HTTP或SOCKS代理、上傳軟件用FTP或SOCKS代理、其他方面(聊天,MUD遊戲等)一般用SOCKS代理。

SOCKS有SOCK4和SOCK5之分。其中SOCK4只支持TCP協議,SOCK5支持TCP和UDP協議,還支持身份驗證、服務器端域名解釋等。


Python Request 使用socks5代理
PySocks是一個基於Python的SOCKS代理客戶端,它是SocksiPy的一個分支,修改了一些bug和增加了一些額外功能。
pip install PySocks


import socket
import socks
import requests

socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
print(requests.get('http://ifconfig.me/ip').text)
 

 

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