什么是SOCKS?

Socket Secure(SOCKS)是一种互联网 协议,通过代理服务器在客户端和服务器之间交换网络数据包。SOCKS5另外提供认证,因此只有授权用户可以访问服务器。实际上,SOCKS服务器代表TCP连接到任意IP地址,并提供UDP数据包转发的方法。SOCKS在OSI模型的第5 层(会话层,表示层和传输层之间的中间层)执行。SOCKS服务器接受TCP端口1080上的传入客户端连接。

历史

该协议最初由MIPS计算机系统系统管理员David Koblas开发/设计。在LSI Graphics于1992年接管MIPS之后,科布拉斯在当年的Usenix安全研讨会上发表了一篇关于SOCKS的文章,使SOCKS公开发布。由NEC的英达李扩展为第4版。SOCKS参考架构和客户由Permeo Technologies拥有,NEC的分拆。(Blue Coat Systems收购了Permeo Technologies)SOCKS5协议最初是一种使防火墙和其他安全产品更容易管理的安全协议。1996年通过了IETF的批准。[1]该协议是与Aventail公司合作开发的,该公司在亚洲以外销售技术。

用法

SOCKS是事实上的标准为电路级网关。SOCKS的另一种用途是将其作为一种规避工具,允许流量绕过互联网过滤,以访问其他阻止的内容,例如政府,工作场所,学校和特定国家的网络服务。[6]

一些SSH套件,如OpenSSH,支持动态端口转发,允许用户创建本地SOCKS代理。这可以使用户免受仅连接到预定义的远程端口和服务器的限制。

在Tor的洋葱代理软件提出了SOCKS接口,它的客户。

使用网络犯罪

被黑客入侵的计算机可能被配置为SOCKS代理软件,掩盖僵尸网络的控制或优化信用卡欺诈。

相比于HTTP代理

本节可能包含滥用,过度或不相干的例子。请通过添加更多描述性文本并删除较少相关示例来改进文章。请参阅维基百科的指南,撰写更好的文章以获取进一步的建议。SOCKS的操作水平低于HTTP代理:SOCKS使用握手协议向代理软件通知客户端尝试进行的连接,然后尽可能透明地执行,而常规代理可以解释和重写头文件(例如,使用另一个底层协议,如FTP ;但是,HTTP代理简单地将HTTP请求转发到所需的HTTP服务器)。虽然HTTP代理具有不同的使用模式,但CONNECT方法允许转发TCP连接; 然而,SOCKS代理还可以转发UDP流量并反向工作,而HTTP代理不能。HTTP代理传统上更加意识到HTTP协议。

SOCKS

Bill希望通过互联网与Jane沟通,但是他们的网络之间存在防火墙,Bill没有权限直接与Jane进行沟通。所以,Bill连接到他网络上的SOCKS代理,通知他关于他想对Jane的连接; SOCKS代理通过防火墙打开一个连接,便于Bill和Jane之间的通信。有关SOCKS协议技术细节的更多信息,请参阅以下部分。

HTTP

Bill希望从运行Web服务器的Jane下载一个网页。Bill不能直接连接到Jane的服务器,因为他的网络上已经安装了防火墙。为了与服务器通信,Bill连接到他的网络的HTTP代理。他的Web浏览器与代理完全相同的方式,直接与Jane的服务器通信,如果可能的话; 也就是说,它发送一个标准的HTTP请求头。HTTP代理连接到Jane的服务器,然后将Jane的服务器返回的任何数据传回给Bill。

SOCKS代理服务器实现

Antinat是一个灵活的SOCKS服务器和客户端库。它支持SOCKS 4,SOCKS 4a,SOCKS 5,认证,CHAP,XML防火墙,Win32,服务器链接和UDP。它还包含非常实验性的IPv6支持。Dante是一个电路级SOCKS服务器,可用于提供方便安全的网络连接,只需要运行的主机Dante具有外部网络连接。Srelay是一款小型SOCKS4 / SOCKS5代理服务器。SS5是一个实现SOCKS v4和v5协议的服务器。Sun Java系统Web代理服务器是在支持HTTPS,NSAPI I / O过滤器,动态重新配置,SOCKSv5和反向代理的 Solaris,Linux和Windows服务器上运行的缓存代理服务器。WinGate是支持SOCKS4,SOCKS4a和SOCKS5(包括UDP-ASSOCIATE和GSSAPI认证)的Microsoft Windows多协议代理服务器和SOCKS服务器。它还支持将SOCKS连接交给HTTP代理,因此可以通过SOCKS缓存和扫描HTTP。

提供SOCKS服务器接口的其它程序

OpenSSH允许动态创建通过SOCKS协议的子集指定的隧道,支持CONNECT命令。PuTTY是一个Win32 SSH客户端,通过远程SSH服务器支持本地创建SOCKS(动态)隧道。ShimmerCat 是一个使用SOCKS5来模拟内部网络的Web服务器,允许Web开发人员测试本地站点,而无需修改其/ etc / hosts文件。Tor是一种旨在实现在线匿名的系统。Tor为其客户提供了一个SOCKS服务器接口。

客户

客户端软件必须具有本机SOCKS支持才能通过SOCKS进行连接。有些程序允许用户规避这些限制。