您可能听说过代理,甚至可能听说过 SOCKS 代理。在他们的核心, 代理服务器 代理或代理是位于本地或远程计算机上的基于硬件或软件的中介。在此中间角色中,它们通过自身路由 Web 浏览器(Web 客户端)和 Web 服务器之间的所有流量,从而阻止或阻止直接通信。

同时,根据类型,代理会隐藏一些有关您在线身份的信息。隐藏数据的示例包括您的 IP 地址和位置。

事实上,代理有多种类型。根据以下内容,它们可以大致分为四组:

然而,本文将主要关注用于在线通信的协议可识别的代理。此类别包括 SOCKS 代理以及 HTTP 和 HTTPS 代理。

什么是 SOCKS 代理服务器?

SOCKS 代理是利用 SOCKS 协议促进主机之间或 Web 客户端与 Web 服务器之间穿过防火墙的网络连接的中介。该代理运行称为 SOCKS 守护程序的软件。该软件专门安装在防火墙主机(已安装防火墙的机器)上,创建穿过该防火墙的安全路由。

因此,这意味着 SOCKS 协议不会绕过防火墙,而是允许通过代理服务器通过防火墙路由通信。因此,防火墙会阻止所有未经授权的流量以及不符合某些参数的流量,例如用户名或未使用 SOCKS 协议发送的流量。

但是,假设通信是通过此协议发送的,并且通过扩展,通过 SOCKS 代理发送。在这种情况下,用户将访问互联网或能够与外部网络中的其他计算机进行通信。一般情况下,SOCKS代理服务器支持应用层连接,即通过应用层协议发送的连接。 (应用层协议包括HTTP、HTTPS、SMTP、TELNET、FTP、POP、MIME等。)

SOCKS 代理服务器的工作原理

由于这种安排,用户的计算机(统称为主机)利用 SOCKS 代理服务器作为安全过渡点,以实现与其他主机或 Web 服务器的安全通信。并且考虑到网络防火墙或防火墙主机仍然通过这个中介来保护连接,它可以防止不需要的入侵者访问主机之间的通信。这样,只有在主机上拥有帐户(代理帐户)的方才能通过防火墙访问使用 SOCKS 协议发送的网络数据包。

SOCKS代理服务器不仅可以实现用户计算机之间的通信,还可以实现Web客户端和Web服务器之间的通信。与所有其他代理服务器一样,它会中介网络流量,阻止直接访问。因此,当客户端发送 HTTP、HTTPS 或 FTP 请求时,SOCKS 服务器会接收它们,然后代表客户端将它们提供给 Web 服务器。同时,它接收来自服务器的响应并将其转发给客户端。不过,在更详细地讨论 SOCKS 代理服务器之前,我们首先了解 SOCKS 协议、它的历史以及它的工作原理。

SOCKS协议的历史

SOCKS 代理服务器的名称源自称为 Socket Secure 的网络协议,该协议是 SOCKS 的缩写。基于以上描述,SOCKS协议提供了通过网络防火墙进行网络连接的框架。自 20 世纪 90 年代初首次推出以来,该协议经历了各种改进。本节将描述这些年来的演变。

SOCKS 版本 1

最初的 SOCKS 协议是在 SOCKS 于 1992 年在第三届 USENIX UNIX 安全研讨会上发表。然而,在发表该论文时,SOCKS 已在 MIPS 计算机系统上运行了三年。这意味着 SOCKS 最初是在 1989 年左右创建的。

该论文由 David Koblas 和 Michelle Koblas 撰写,讨论了如何使用 SOCKS 协议通过防火墙主机提供方便且安全的网络连接。它的创建者将其设计为解决当时存在的问题:通过计算机连接到互联网来创建安全环境的方法很麻烦、不方便,或者很容易受到损害。

论文提出了一个SOCKS包,其中包括SOCKS库、协议和守护进程(SOCKS代理软件)。该库包含与防火墙上安装的 SOCKS 守护程序建立连接的调用。通过这种方式,该库启用了信息传输和网络连接,使得守护进程看起来像是请求的发起者。因此,对于外部主机来说,守护进程(SOCKS 代理)似乎是请求的发起者。 SOCKS 库例程或调用包括:

  • 连接:它请求 SOCKS 代理(守护进程)建立到给定 IP 地址、端口号和用户名的出站连接
  • 绑定:它请求来自给定外部 IP 地址的入站连接。它还包含用户名要求,但该用户名属于请求者(发送者)并用于记录信息。通常,Bind 调用将新的套接字连接绑定到防火墙上的空闲端口。
  • :等待(监听),准备接受来自外部主机的呼叫
  • 获取SOCK名称:获取防火墙上socket的IP地址和端口号
  • 接受:它接受来自外部主机的连接

SOCKS 版本 4 (SOCKS4)

Ying-Da Lee扩展了SOCKS协议,创建 SOCKS 版本 4 (SOCKS4)稍后介绍 SOCKS 版本 4a (SOCKS4a)。因此,SOCKS4a 通过支持解析目标主机(服务器)的域名来查找其 IP 地址,从而扩展了协议的功能。

SOCKS 版本 5 (SOCKS 5)

1996 年,一群贡献者写了一个 备忘录 描述 SOCKS 版本 5。该文章通过扩展底层框架的功能来扩展 SOCKS 协议的功能,使其能够支持更复杂的应用层协议。此外,SOCKS5 还引入了对传输控制协议 (TCP) 和用户数据报协议 (UDP) 中客户端-服务器应用程序的支持。此外,它还扩展了寻址系统以包括 IPv6 地址 和域名寻址。

最后,SOCKS5引入了强认证。新版本指定了使用任意身份验证协议的通用框架。例如,当发起SOCKS连接时,可以使用以下身份验证:

值得注意的是,修订产生了多种类型的 SOCKS 代理,即:

  • SOCKS4 代理
  • SOCKS5 代理

SOCKS4 与 SOCKS5:异同

SOCKS4和SOCKS5的异同

SOCKS4 和 SOCKS5 之间的相似之处

SOCKS4 和 SOCKS5 协议以及代理在以下方面相似:

  • SOCKS4和SOCKS5中的SOCKS服务位于端口1080
  • 他们利用相同的操作,即 连接, 绑定, , 接受, 和 获取SOCK名称.

SOCKS4 和 SOCKS5 之间的区别

SOCKS4 和 SOCKS5 协议和代理的不同之处如下表所述:

  SOCKS4 SOCKS5
支持的域 它只支持TCP 它同时支持 TCP 和 UDP
安全 它提供不安全的防火墙穿越,因为它不对网络数据包进行身份验证 它支持强大的身份验证方案,例如用户名和密码要求,从而促进安全的防火墙穿越
支持的协议 支持FTP、SMTP、TELNET、HTTP、GOPHER(即应用层协议) 它支持 FTP、SMTP、TELNET、HTTP 和 GOPHER,以及 NTP、DHCP、BOOTP、NNP、TFTP、RTSP、RIP 和 DNS(即应用层和传输层协议)
IP 地址 仅支持 IPv4 地址 它支持 IPv4 和 IPv6 地址
域名 它无法解析所有域名,因此无法找到其 IP 地址 它可以解析所有服务器的域名以找到其IP地址
寻址 不支持域名寻址 支持域名寻址

SOCKS 代理连接有多安全?

与 HTTPS 连接不同,SOCKS 连接未加密。但可以通过任何 SOCKS 连接(连接内)建立加密的 HTTPS 连接,从外部完全无法访问:

SOCKS连接内的HTTP、UDP等连接
SOCKS连接内的HTTP、UDP等连接

这看起来可能很复杂,但实际上非常简单,当用户第一次建立 SOCKS 连接时(例如使用 前置器 或者 浏览器插件 Foxyproxy),然后转到使用 SSL 证书的网页(地址栏左侧的“锁”)。

浏览器 <-> SOCKS (HTTPS) SOCKS <-> 目标网站

这意味着这种连接是完全安全的,任何人,甚至是代理提供商,都无法确切地知道用户在网站上做什么、正在打印什么、正在查看或上传什么图片或视频。

SOCKS代理服务器的优点和缺点

SOCKS代理的优点

SOCKS代理的优点是:

  • 错误较少: SOCKS 代理与 HTTP 代理不同,不会解释或重写数据包(例如标头)。因此,它们不易出现贴错标签或其他错误。
  • 支持多种协议 在应用层和传输层:SOCKS4代理支持FTP、SMTP、TELNET、HTTP和GOPHER协议。相比之下,SOCKS5 代理支持 FTP、SMTP、TELNET、HTTP 和 GOPHER 协议,以及 NTP、DHCP、BOOTP、NNP、TFTP、RTSP、RIP 和 DNS。相反,HTTP 代理仅支持 HTTP 和 HTTPS 协议。
  • 更好的安全性:SOCKS5代理,特别是在各个阶段进行认证。这促进了安全性。但一般来说,由于所有 SOCKS 代理均不会解释或重写数据,因此它们无法发现包含您个人信息的数据包。
  • 增强隐私:SOCKS5 代理可以更改您的 IP 地址,从而隐藏您的真实位置等信息,特别是考虑到 IP 地址存储此类数据。

SOCKS 代理的缺点

SOCKS 代理的缺点包括:

  • 连接延迟/速度慢:特别是 SOCKS5 代理必须在操作的不同阶段进行多次身份验证,这意味着速度较慢。
  • 有限的反向连接:SOCKS5的bind命令不足以覆盖需要服务器多次连接客户端(back-connect)的协议;相反,它主要适用于仅需要单个反向连接的协议,例如 FTP
  • 支持的 UDP 功能有限:SOCKS5 最初的 UDP 支持功能有限。例如,该协议设想 UDP 应用程序应该发送数据并接收响应。然而,许多UDP应用程序可以接收UDP数据,而不需要IP地址信息、发送数据或使用某个端口。因此,SOCKS5 代理的 UDP 功能有限。
  • 向后不兼容:SOCKS5代理不向后兼容早期版本的SOCKS协议,例如SOCKS4a

如何使用 SOCKS 代理

SOCKS代理的使用方式如下:

  • 它们允许用户绕过地理封锁。这样,SOCKS 代理(特别是 SOCKS5 代理)使它们能够访问其他位置的内容。 (地理封锁或地理限制 是网站仅向来自特定位置的访问者显示内容的做法。)
  • SOCKS 代理服务器有助于绕过学校、工作场所和政府的互联网过滤(仅举几例)
  • 匿名使用信使,例如 电报
  • 视频流和实时通话
  • 洪流下载 或点对点共享和下载
  • 由于 SMTP 支持,可以批量且安全地发送电子邮件
  • 一般网页浏览,因为 SOCKS5 支持许多应用程序级协议
  • 阻止对业务网络的未经授权的访问:SOCKS 代理充当临时中介,可通过业务防火墙实现安全的互联网访问,同时防止不需要的入侵者访问本地网络内的服务器或计算机。

SOCKS 代理与 HTTP 代理

如前所述,SOCKS 代理和 HTTP 代理是基于协议的代理服务器。有关 HTTP 和 HTTPS 代理可以实现的功能的详细讨论,请参阅我们的文章 HTTP 和 HTTPS 代理.

SOCKS 代理和 HTTP 代理如何比较

本节详细介绍 SOCKS 和 HTTP 代理之间的异同。

SOCKS 代理和 HTTP 代理之间的相似之处

SOCKS 和 HTTP 代理在以下方面相似:

  • 它们都基于互联网协议

SOCKS 代理和 HTTP 代理之间的区别

SOCKS 和 HTTP 代理在以下方面有所不同:

  SOCKS 代理 HTTP 代理
协议 它们支持大量的 TCP 协议以及 UDP 协议 它们仅支持 HTTP 和 HTTPS 协议
安全 他们不加密数据 HTTPS 代理加密数据
防火墙访问 SOCKS 代理通过网络防火墙提供互联网访问 他们不提供穿过防火墙的连接
数据解读 他们不解释、分析或重写数据 它们解释数据,并在某些情况下重写标头数据包
互操作性 SOCKS代理可以使用HTTP和HTTPS协议 HTTP 和 HTTPS 代理不能使用 SOCKS 协议
OSI分类 SOCKS 代理位于较低级别(第 5 层) OSI分类,即会话层 HTTP 代理位于 OSI 分类的更高级别(第 4 层),即传输层
配置 SOCKS 代理只能集成到 Web 客户端或非 Web 服务器的计算机中 HTTP 代理可以配置到 Web 客户端或服务器中
港口 SOCKS 服务可通过 SOCKS 代理端口 1080 和 1085 获得 HTTP 代理使用端口 80、8080、8085、3128 和 3129,而 HTTPS 代理使用端口 443

SOCKS 代理与 VPN

当然,SOCKS 代理可以创建穿过防火墙的安全隧道。但您是否也知道您可以使用 虚拟专用网络或VPN? VPN 在两个网络(本地网络和外部网络)之间创建安全的通信路由。它通过通过隧道路由所有互联网流量来实现此目的,但在入口点(例如您的计算机)对数据进行加密之前。隧道终止于出口节点(VPN 的出口服务器),该出口节点为来自用户本地网络或计算机的传出请求分配一个新的 IP 地址,从而有效地隐藏真实的 IP 地址。

使用 VPN 时,所有请求似乎都源自退出注释。同时,来自 Web 服务器的所有响应似乎都终止于该 VPN 服务器。由于这种安排,您可以使用 VPN 访问 VPN 提供商拥有服务器的任何位置的其他受地理封锁的内容。

例如,如果您位于德国,并且想要访问只有美国居民才能查看的网络内容,您只需使用位于美国的 VPN 服务器即可。

为此,您必须首先在计算机上安装 VPN 软件,这会将您的计算机转换为入口节点。该软件负责对数据进行加密。接下来,您必须选择退出节点,一旦 VPN 连接到该退出服务器,您就可以自由发送请求。

VPN 的优点

虚拟专用网络的优点包括:

  • 加密和安全:VPN 对所有请求和服务器响应进行加密,从而保证无与伦比的安全性。因此,建议您在通过公共 Wi-Fi 访问互联网时使用 VPN
  • 提供对地理封锁内容的访问:VPN 通过将流量路由到不同国家/地区的出口节点,实际上将您传送到该位置。因此,如果没有 VPN,您就可以访问在自己的国家/地区无法访问的网络内容。
  • 在线隐私:VPN 会隐藏您的真实 IP 地址,然后分配一个不同的地址。这样,他们就会通过隐藏有关您的某些数据(例如您的位置(州、城市、国家/地区和大致坐标))来保护您的在线隐私。

VPN 的缺点

虚拟专用网络的缺点包括:

  • 连接速度慢:由于此解决方案必须加密所有传出请求和传入响应,因此通常速度较慢。
  • 记录用户数据:引起 VPN 用户不满的另一个常见缺点是一些 VPN 提供商经常记录用户数据。他们这样做是为了随后在出现提示时向执法官员提供上述数据。事实上,一些提供商通过向调查机构提供用户数据而成为头条新闻。此外,一些国家,例如 印度,有法律强制 VPN 提供商保存用户数据。在此背景下,观察人士 之前建议的 用户应从表面上理解提供商的“无日志”政策。
  • 免费 VPN 通常不安全:此类 VPN 通常在多个用户之间共享同一个安全隧道,这会增加“嗅探”或窃听的机会。
  • VPN 在某些国家/地区被禁止:一些国家已将 VPN 的使用彻底定为非法。在其他国家/地区,只能使用政府许可的 VPN。

VPN 的用途

虚拟专用网络的使用方式如下:

  • VPN 在通过公共接入点访问互联网时提供安全性
  • 访问受地理限制的内容:如上所述,VPN(如 SOCKS5 代理)允许您从任何位置访问任何内容
  • 促进远程工作:公司要求远程员工通过专用 VPN 登录其系统或服务器来保护其数据

SOCKS 代理与 VPN 相比如何

回顾上述 SOCKS 代理的特点、优点和缺点,SOCKS 代理与 VPN 有何比较?

SOCKS 代理和 VPN 之间的相似之处

SOCKS 代理和 VPN 具有某些相似之处,包括:

  • 在线隐私:SOCKS5 代理和 VPN 隐藏真实 IP 地址,从而提供在线隐私
  • 安全性:两种解决方案都可以提高安全性,尽管方式不同。 VPN 加密数据,而 SOCKS5 代理执行身份验证。
  • 支持的协议:一些 VPN协议,例如OpenVPN,支持TCP和UDP,而SOCKS5代理也支持TCP和UDP。
  • 绕过地理限制:SOCKS5 代理和 VPN 可用于访问其他受地理限制的内容。

SOCKS 代理和 VPN 之间的差异

SOCKS 代理服务器和 VPN 在几个方面有所不同。下表总结了这些差异:

  SOCKS 代理 VPN
协议 SOCKS代理,特别是SOCKS5代理,支持传输和应用层代理,包括FTP、SMTP、TELNET、HTTP、GOPHER、NTP、DHCP、BOOTP、NNP、TFTP、RTSP、RIP和DNS VPN一般使用IKEv2、OpenVPN、L2TP/IPSec、WireGuard、SSTP、PPTP等VPN协议
连接速度 SOCKS 代理通常速度更快,因为它们不进行加密 VPN 速度很慢,因为它们加密数据
服务器数量 SOCKS代理服务提供商通常提供数十万甚至数百万个代理服务器 VPN 提供商通常拥有较少的服务器
国家 一些 SOCKS 提供商在 150 多个国家/地区设有代理服务器 VPN 提供商通常在较少的国家/地区拥有 VPN 服务器,通常少于 100 个

结论

SOCKS 代理允许用户计算机之间以及 Web 客户端和 Web 服务器之间通过网络防火墙进行通信。基于SOCKS协议,这种代理类型可以防止入侵者访问各方之间的通信。多年来,SOCKS协议不断改进,产生了多个版本,即SOCKS4、SOCKS4a和SOCKS5。因此,SOCKS 代理有多种类型,即 SOCKS4 代理和 SOCKS5 代理,后者提供更优越的功能。 SOCKS 代理有多种使用方式,包括种子下载、电子邮件、视频流、实时通话和一般浏览。他们还提供在线匿名服务。在本文中,我们将 SOCKS 代理与 VPN 和 HTTP 代理进行了比较,我们希望您能够更好地了解如何根据您的独特需求进行选择。

选择并购买代理

选择类型、位置和数量,即时查看价格。

选择并购买代理