SOCKS

✍ dations ◷ 2025-05-19 01:19:16 #网际协议,网络隐私

SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。SOCKS是"SOCKetS"的缩写。

当防火墙后的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。这个代理服务器控制客户端访问外网的资格,允许的话,就将客户端的请求发往外部的服务器。

这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到SOCKS4。最新协议是SOCKS5,与前一版本相比,增加支持UDP、验证,以及IPv6。

根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间。

SOCKS协议不提供加密。

工作在比HTTP代理更低的层次:SOCKS使用握手协议来通知代理软件其客户端试图进行的SOCKS连接,然后尽可能透明地进行操作,而常规代理可能会解释和重写报头(例如,使用另一种底层协议,例如FTP;然而,HTTP代理只是将HTTP请求转发到所需的HTTP服务器)。虽然HTTP代理有不同的使用模式,HTTP CONNECT方法允许转发TCP连接;然而,SOCKS代理还可以转发UDP流量(仅SOCKS5),而HTTP代理不能。HTTP代理通常更了解HTTP协议,执行更高层次的过滤(虽然通常只用于GET和POST方法,而不用于CONNECT方法)。

Bill希望通过互联网与Jane沟通,但他们的网络之间存在一个防火墙,Bill不能直接与Jane沟通。所以,Bill连接到他的网络上的SOCKS代理,告知它他想要与Jane创建连接;SOCKS代理打开一个能穿过防火墙的连接,并促进Bill和Jane之间的通信。

有关SOCKS协议的技术细节的更多信息,请参阅下面的部分。

Bill希望从Jane的Web服务器下载一个网页。Bill不能直接连接到Jane的服务器,因为在他的网络上设置了防火墙。为了与该服务器通信,Bill连接到其网络的HTTP代理。他的网页浏览器与代理通信的方式与他直接连接Jane的服务器的方式相同;也就是说,网页浏览器会发送一个标准的HTTP请求头。HTTP代理连接到Jane的服务器,然后将Jane的服务器返回的任何数据传回Bill。

下面是客户端向SOCKS 4代理服务器,发送的连接请求包的格式(以字节为单位):

代理服务器而后发送回应包(以字节为单位):

如果请求被拒绝,SOCKS服务器马上与客户端断开连接;如果请求被允许,代理服务器就充当客户端与目的主机之间进行双向传递,对客户端而言,就如同直接在与目的主机相连。

SOCKS 4A是SOCKS 4协议的简单扩展,允许客户端对无法解析域名的目的主机进行访问。

客户端对DSTIP的头三个字节设定为NULL,最后一个字节为非零;对应的IP地址就是0.0.0.x,其中x是非零,这当然不可能是目的主机的地址,这样即使客户端可以解析域名,对此也不会发生冲突。USERID以紧跟的NULL字节作结尾,客户端必须发送目的主机的域名,并以另一个NULL字节作结尾。CONNECT和BIND请求的时候,都要按照这种格式(以字节为单位):

使用4a协议的服务器必须检查请求包里的DSTIP字段,如果表示地址0.0.0.x,x是非零结尾,那么服务器就得读取客户端所发包中的域名字段,然后服务器就得解析这个域名,可以的话,对目的主机进行连接。

SOCKS5比SOCKS4a多了验证、IPv6、UDP支持。创建与SOCKS5服务器的TCP连接后客户端需要先发送请求来确认协议版本及认证方式,格式为(以字节为单位):

服务器从客户端提供的方法中选择一个并通过以下消息通知客户端(以字节为单位):

之后客户端和服务端根据选定的认证方式执行对应的认证。

认证结束后客户端就可以发送请求信息。如果认证方法有特殊封装要求,请求必须按照方法所定义的方式进行封装。

SOCKS5请求格式(以字节为单位):

服务器按以下格式回应客户端的请求(以字节为单位):

在客户端、服务端协商使用用户名密码认证后,客户端发出用户名密码,格式为(以字节为单位):


鉴定协议版本目前为 0x01 。

服务器鉴定后发出如下回应:

其中鉴定状态 0x00 表示成功,0x01 表示失败。

部分SOCKS服务器软件:

一般情况下应用程序会内嵌对SOCKS协议的支持。但socksify,proxifier软件可强制使不支持SOCKS的应用通过代理联网。

相关

  • Mgsub2/subSisub3/subOsub8/sub三硅酸镁五水合物,化学式Mg2Si3O8·5H2O。三硅酸镁是一种无臭、无味、无砂砾感的白色细粉,略有吸湿性,不溶于水、乙醇和乙醚,易受无机酸分解。泡花碱与硫酸镁经预处理后进行反应
  • 摩卡咖啡摩卡咖啡(英语:Café Mocha,意大利语:Mocaccino,又名莫加或者摩卡)是意式拿铁咖啡的变种。和经典的意式拿铁咖啡一样,它通常是由三分之一的意式浓缩咖啡和三分之二的奶沫配成,不过它
  • 北赤道洋流北赤道海流(英语:North Equatorial Current),为太平洋及大西洋上一支显著的洋流,纬度位于北纬10度至20度之间,其流向由东向西。北赤道海流为构成亚热带环流(Subtropical Gyre)的南
  • 植物区系植物相(拉丁文:Flora,源自罗马神话里的花之女神)又译植物群或植物区系,指某一地区某一时段的特定植物种群。Flora另一个意思是植物志,是对一个植物区系的纪录和描述。植物相的原字
  • 云贵总督云贵总督(满语:ᠶᡡᠨᠨᠠᠨ ᡤᡠᡳᠵᡝᠣ ᡳ ᡠᡥᡝᡵᡳ ᡴᠠᡩᠠᠯᠠᡵᠠ ᠠᠮᠪᠠᠨ,穆麟德:yūnnan guijeo i uheri kadalara amban),正式官衔为总督云贵等处地方提督军务、
  • 翅膀亦称翼,为鸟与昆虫等动物用来飞行的器官。在现代,许多机械物件也会使用翅膀飞翔,例如航天飞机及飞机等。鸟的翅膀是其飞翔的主要结构,翅膀外面覆盖硬羽,其特性适于飞行。翅膀
  • 虚构集《虚构集》(西班牙语:Ficciones)是阿根廷作家和诗人豪尔赫·路易斯·博尔赫斯最受欢迎的短篇小说集,经常被视为了解博尔赫斯作品的最佳入门读物。1941年,博尔赫斯第二部小说集《
  • 萨拉索塔萨拉索塔(英语:Sarasota),是美国佛罗里达州下属的一座城市。建立于1902年。面积约为67.2平方公里(约合25.9平方英里)。根据2010年美国人口普查,该市有人口52,488人。论人口在本州排
  • 刘老根大舞台刘老根大舞台是由赵本山所创立的本山传媒旗下的连锁剧场,以表演二人转为主。2003年起,赵本山开始率演员在沈阳大舞台(即沈阳中街剧场)进行二人转演出,后成为刘老根大舞台中的旗舰
  • 朱塞普·科马斯·索拉朱塞普·科马斯·索拉(加泰罗尼亚语:Josep Comas i Solà,加泰罗尼亚语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lu