跳至正文
中文
立即开始

SOCKS5 代理

SOCKS5 代理通过另一台服务器转发 TCP 连接和 UDP 数据报,在不解析应用流量的情况下,改变目标端看到的源 IP。

文章目录(8 个章节)

SOCKS5 代理的工作原理

应用连接到代理后,先协商认证方式,再发送命令,例如用 CONNECT 建立 TCP 连接,或用 UDP ASSOCIATE 中继 UDP。代理随后连接目标端,并在两端之间转发流量。

应用  →  SOCKS5 代理  →  目标端

目标端看到的是代理的出口 IP,而不是应用所在设备的公网 IP。SOCKS5 不解析 HTTP,因此不会改写请求头,也不会让自动化客户端看起来像浏览器。

SOCKS5 代理与 HTTP 代理的区别

SOCKS5 代理处理应用层协议以下的流量,而 HTTP 代理能够理解 Web 请求。

SOCKS5 代理 HTTP 代理
流量 TCP 连接和 UDP 中继 HTTP、HTTPS 和允许建立的 CONNECT 隧道
UDP 支持 SOCKS5 协议已定义,但代理可能未启用 标准 HTTP 代理不支持
内容处理 不解析应用数据 读取 HTTP;HTTPS 通常通过隧道传输
典型适用场景 混合协议或非 HTTP 应用 浏览器、API 和网页采集工具

DNS、认证与加密

  • 远程 DNS: SOCKS5 请求可以包含域名,让代理通过 DNS 完成解析。应用必须明确请求使用这种方式。在 curl 中,socks5h:// 由代理端解析,而 socks5:// 在本地解析。
  • 认证: SOCKS5 会先协商访问方式,再转发流量。常见选项包括无需认证和用户名/密码认证,但实际支持情况取决于代理和客户端。代理认证用于控制访问权限,不会加密数据。
  • 加密: SOCKS5 本身不提供加密。HTTPS 仍可端到端保护网页内容,但未加密的应用流量在传输途中仍可被读取。VPN 则用于加密设备与 VPN 服务器之间的流量。

何时使用 SOCKS5

  • 应用明确支持 SOCKS5,但不支持 HTTP 代理。
  • 非 HTTP 协议需要使用 TCP 连接。
  • 需要 UDP 中继,并且应用和代理都已实现该功能。

SOCKS5 定义的是连接协议,而不是出口 IP 的来源或行为。SOCKS5 端点可以使用住宅、移动或数据中心 IP,也可以采用静态或轮换方式。只有服务实现了 IP 轮换,出口 IP 才会轮换;SOCKS5 也不能规避限速或网站规则。

常见问题

SOCKS5 代理会加密流量吗?

不会。SOCKS5 只转发流量,不会额外加密。需要保护机密信息时,应使用 HTTPS 等加密应用协议或加密隧道。

SOCKS4 和 SOCKS5 有什么区别?

SOCKS4 处理 TCP,且不支持协议层认证。SOCKS5 增加了认证协商、UDP 中继,以及域名和 IPv6 地址类型。

SOCKS5 能防止 DNS 泄漏吗?

可以,但并非自动实现。应用必须把主机名发送给代理,由代理远程解析;否则,应用可能会在连接前查询本地 DNS 解析器。

相关术语

查看全部术语