入代理工具入门名词KNOWLEDGE MAP · 名词图谱
节点 02

SOCKS5 是什么及其流量范围

代理工具入门名词编辑部 · 更新于 2026-10-18

一句话回答

SOCKS5 是 RFC 1928 定义的代理协议,位于应用层与传输层之间,可承载 TCP 与 UDP,不转发 ICMP,习惯端口 TCP 1080。HTTP 代理则靠 CONNECT 方法为 HTTPS 建立隧道。

一图看懂点任一步跳到对应小节

  1. 1SOCKS5 的要点
  2. 2HTTP 代理与 CONNECT
  3. 3对照
本文目录SOCKS5 的要点HTTP 代理与 CONNECT对照常见问题

SOCKS5 是 RFC 1928(1996 年)定义的代理协议,在概念上位于应用层与传输层之间,为 TCP 和 UDP 应用提供穿过防火墙的框架。RFC 明确写它不提供网络层网关服务,例如不转发 ICMP,所以 ping 不经过 SOCKS5。

SOCKS5 的要点

1要点 · 第 1 节

相比 SOCKS4,SOCKS5 加了 UDP 支持、通用的认证框架,地址也支持域名与 IPv6。

  • 因为可以直接把域名交给代理端解析,客户端不一定要先在本地查 DNS…
命令CONNECT(X'01')…
认证方式X'00' 无需认证、X'01' GSSAPI…
地址类型X'01' IPv4、X'03' 完整域名…
习惯端口TCP 1080(是约定,不是强制)
展开详细说明
项RFC 1928 的规定
命令CONNECT(X'01')、BIND(X'02')、UDP ASSOCIATE(X'03')
认证方式X'00' 无需认证、X'01' GSSAPI、X'02' 用户名/密码
地址类型X'01' IPv4、X'03' 完整域名、X'04' IPv6
习惯端口TCP 1080(是约定,不是强制)

相比 SOCKS4,SOCKS5 加了 UDP 支持、通用的认证框架,地址也支持域名与 IPv6。因为可以直接把域名交给代理端解析,客户端不一定要先在本地查 DNS;如果客户端先在本地解析再把 IP 交过去,那次 DNS 查询就走了本地网络,见DNS 说明。

HTTP 代理与 CONNECT

2要点 · 第 2 节

RFC 9110 写道,客户端按自己的配置决定是否用代理,代理本身通常用一个 http 或 https URI 表示。

  • 访问 HTTPS 网站时,客户端用 CONNECT 方法请求代理建立到目标「主机:端口」的隧道…
  • MDN 提醒,并非所有代理服务器都支持 CONNECT,有的只允许 443 端口。
  • 需要认证时,HTTP 用 Proxy-Authorization 请求头和 407 状态码。
展开详细说明

RFC 9110 写道,客户端按自己的配置决定是否用代理,代理本身通常用一个 http 或 https URI 表示。访问 HTTPS 网站时,客户端用 CONNECT 方法请求代理建立到目标「主机:端口」的隧道,之后代理双向盲转发,内容由客户端与目标之间的 TLS 加密。MDN 提醒,并非所有代理服务器都支持 CONNECT,有的只允许 443 端口。需要认证时,HTTP 用 Proxy-Authorization 请求头和 407 状态码。

对照

3要点 · 第 3 节

代理客户端常把两种协议放在同一个端口:mihomo 的入站类型有 http、socks 和 mixed…

  • 系统层面的差别见系统代理说明。
所在层HTTP(应用层)协议里的中介
UDP标准 CONNECT 只描述建立连接隧道…
HTTPS 网站用 CONNECT 隧道
Windows 系统代理支持
macOS 系统代理网页代理(HTTP)、安全网页代理(HTTPS)
展开详细说明
项HTTP 代理SOCKS5
所在层HTTP(应用层)协议里的中介应用层与传输层之间
UDP标准 CONNECT 只描述建立连接隧道,一般理解为 TCP有 UDP ASSOCIATE
HTTPS 网站用 CONNECT 隧道用 CONNECT 命令转发 TCP
Windows 系统代理支持不支持
macOS 系统代理网页代理(HTTP)、安全网页代理(HTTPS)有 SOCKS 代理选项
HTTP 代理与 SOCKS5 对照数据:本页「对照」表 · 2026-10-18

代理客户端常把两种协议放在同一个端口:mihomo 的入站类型有 http、socks 和 mixed,mixed 从名称看是同一端口同时接受两种请求(文档没有逐字定义)。系统层面的差别见系统代理说明。

常见问题

SOCKS5 能代理 ping 吗?

不能。RFC 1928 说明 SOCKS5 不提供网络层网关服务,例如不转发 ICMP,而 ping 使用的就是 ICMP。

SOCKS5 默认端口是 1080 吗?

RFC 1928 的原话是 SOCKS 服务「习惯上」位于 TCP 1080 端口。这是约定,实际服务可以用别的端口。