SOCKS5 是一个
代理协议,它在使用
TCP/IP协议通讯的前端机器和
服务器机器之间扮演一个中介角色,使得
内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过
TCP/IP协议进行通讯,前端将原本要发送给真正服务器的
请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。
如果您的机器具有一个合法的 Internet IP 地址, 或者您利用自己机器上的
调制解调器拨号上网, 可以自由和 Internet 上任何主机沟通, 那么您通常不必关心 SOCKS5 协议。SOCKS5 协议对于处在内部网络中的机器, 需要透过网络中某些可以
联通外部 Internet 的机器访问外部时,有用。SOCKS5服务器在将通讯
请求发送给真正服务器的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务器的响应后,也原样转发给前端。因此,SOCKS5 协议是一种
代理协议,对于各种基于 TCP/IP的
应用层协议都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但是它能够忠实地转发通讯包,完成协议本来要完成的功能。
与SOCKS5协议不同,
HTTP代理是通过HTTP协议进行的,HTTP
代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程度的修改和转换。和HTTP代理协议不同,SOCKS5实际上是一个
传输层的代理协议。我们可以想象,如果每个具体的
应用层协议都要设计对应的代理协议表达办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局面。不过,并不是凡是使用基于
TCP/IP协议的应用协议的软件,都可以无条件地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能利用
SOCKS5代理服务器。
SOCKS是一组由
Internal工程工作小组(
IETF)所开发出来的开放软件开放标准,用来处理网络安全的事宜。SOCKS像一堵墙被夹在 Internal服务器和客户端之间,对于出入
企业网络的资讯提供流量和安全的管理。SOCKS这个名词并不是一组英文字头的缩写,而是一个和 TCP/IP的Socket端口有关的
安全标准,一般
防火墙系统通常是象
网关(Gateway)一样是作用在
OSI模型的第七层也就是
应用层上,对 TCP/IP的高级协议,如
Telnet、
FTP、
HTTP和
SMTP加以管制,而SOCKS作用在OSI模型的第五层也就是
会话层上,像一个代理一样对客户端到
服务器端或服务器和服务器之间的数据联系提供安全上的服务。由于SOCKS作用在会话层上,因此它是一个提供会话层到会话层间
安全服务的方案,不受高层应用程序变更的影响。
Socks代理只是简单地传递
数据包,而不必关心是何种
应用协议(比如FTP、HTTP和
NNTP请求),所以Socks
代理服务器比应用层代理服务器要快。