对于内网中的机器,SOCKS5协议需要通过网络连接到外网。SOCKS5是一种使用TCP/IP协议进行沟通的前端和服务器之间起到中介作用,使内网中的前端机器能够访问互联网中的服务器,或者使沟通更加安全。
SOCKS5服务器模拟将前端发送的请求转发到真实的目标服务器,模拟前端行为。在这些请求中,前端和SOCKS5之间也通过TCP/IP协议进行通信,前端将请求发送到SOCKS5服务器,SOCKS5服务器将请求发送到实际服务器。SOCKS5服务器在向实际服务器发送通讯请求时,请求包本身没有任何变化。
SOCKS5服务器接到真实的服务器响应后,直接转发到前端。因此,SOCKS5协议是一种代理协议,可应用于基于TCP/IP的各种应用层协议,几乎是万能的。虽然不能了解自己转发的数据内部结构,但是可以实现对通讯包的忠诚转发,完成协议所需的功能。
与SOCKS5协议不同,HTTP代理是通过HTTP协议实现的。HTTP代运营服务器软件了解通讯包的內部构造,在转发过程中必须修改和转换通讯包的步骤。与HTTP代理协议不同,SOCKS5其实是一种传输代理协议。
如果每一个具体的应用层协议都设计了相应的代理协议表达方式,我们可以想象一个具体的代理服务器根本支持不了这么多新的协议。SOCKS5的出现可以说缓解了各种特定协议对代理协议的特殊需求。
但是,并非所有基于TCP/IP协议的应用协议软件都可以通过SOCKS5服务器无条件通信,前端软件本身需要SOCKS5界面才能使用SOCKS5代理服务器。