代理协议独立百科词条Surge 官方伴生

Snell (Snell v5)

Surge 官方轻量专属 · 极简二进制帧 · v5 专有 QUIC 代理通道

Snell 是由知名网络调试工具 Surge 官方团队(blankwonder)设计并开源提供独立服务端的私有轻量级代理协议[1][4]。 其核心哲学是「极致轻量、超低内存与卓越的诊断排障体验」。 在最新的 Snell v5 中,官方不仅升级了动态记录大小切片,更前瞻性地加入了专用的 QUIC Proxy 通道, 为现代以 HTTP/3 为核心的网络环境提供了开箱即用的高并发低延迟代理支持。

核心作者blankwonder
v5 正式版2023.11.10
核心机制极简二进制帧 + QUIC Proxy
生态定位Surge 专属最佳体验伴生协议

日期辨析:2018 年 8 月 15 日 v1 首发 vs 2023 年 11 月 10 日 v5 稳定版

项目创立与 v1 首发2018.08.15

blankwonder 为 Surge 用户推出单文件独立服务端 Snell,提供极简配置、零依赖与详尽的错误诊断回传。

v4 动态记录大小重构2022.09.18

发布 Snell v4,引入动态记录大小(Dynamic Record Sizing)与增强型双向流量加密。

v5 稳定版正式发布2023.11.10

官方发布 Snell v5 (v5.0.1),原生新增专用的 QUIC Proxy 通道,大幅改善现代 HTTP/3 网页的加载首包延迟。

编写口径:Snell 历经 v1 到 v5 多次协议大版本更迭,服务端为闭源独立单二进制包,所有演进以 Surge 官方知识库(Release Notes)公告为准。

词条概览与核心定位

01

在 Shadowsocks、V2Ray 等复杂的生态出现后,很多用户面临两个痛点:一方面通用代理服务端依赖繁多、内存消耗偏大; 另一方面,当代理节点由于远端 DNS 失败、超时或握手被拒时,客户端通常只能收到一个冰冷的「连接中断」错误,完全无法准确定位是哪一环出错。

为了给 Surge 用户提供最纯粹的排障与代理体验,blankwonder 于 2018 年推出了 Snell。 它仅有一个几兆大小的单二进制程序,无任何动态依赖库,几秒钟即可完成部署; 更重要的是,Snell 服务端与 Surge 客户端深度契合,当服务端访问目标网站出错时,能将错误原因、目标响应状态码以结构化消息精确回传给客户端并在仪表盘呈现[1]。

定位结论

Snell 属于苹果生态与 Surge 用户的顶级专属座驾。 它不追求复杂的伪装套件,依靠极简设计、高吞吐和 QUIC 专属代理通道,成为高端自建 VPS 用户配合 Surge 的主力首选。

架构原理与 v5 专有 QUIC 通道

02
1. 极简二进制握手层(Snell Fast Handshake)基于预共享秘钥(PSK)派生对称密钥,使用 ChaCha20-Poly1305 进行全量载荷加密认证; 精简协议字段,舍弃多余的前向安全握手轮次,实现极致低首包延迟与零状态切换。
2. 动态记录大小切片(Dynamic Record Sizing)继承自 Snell v4 的核心优化:在低速交互时采用短帧降低延迟,在大吞吐文件传输时自动扩展到 16KB 帧以减少系统调用和 CPU 消耗。
3. 专用 QUIC Proxy 加速通道(Snell v5 Exclusive)专为现代 HTTP/3(QUIC)流量研发。当客户端识别到 QUIC 流量时,不再退化为低效的普通 UDP 转发, 而是由 Snell 专有通道保持底层连接与拥塞控制连续性,大幅降低网络波动下的丢包重传。

连接与数据交互生命周期

  1. PSK 派生与握手认证:客户端生成一次性随机盐,结合预配置的 PSK 计算出本次会话加密秘钥,发送轻量加密请求帧。
  2. 目标建立与错误回传:Snell 服务端在远端发起真实 TCP 连接或 QUIC 握手;若目标不可达,立刻将远端错误原因明文加密回传。
  3. 全双工动态切片转发:数据流进入全双工转发模式,Mux 多路复用使得多个并发请求共享单条物理长连接。

极简设计的权衡考量

Snell 官方声明明确表示放弃前向安全性(Forward Secrecy)以追求极简与低开销。 它不对抗深度 TLS 模拟审查,而是定位于高纯净度机房节点配合优质线路使用。

精确到日的核验时间线(共 8 个关键节点)

03

以下时间线记录了 Snell 从 2018 年首次发布至今的核心版本迭代,全部依据官方发布日志整理核验:

极简开创

Surge 官方生态伴生协议的诞生(2018–2020)

  • Snell v1 首次随 Surge 3 正式发布

    blankwonder 在 Surge 知识库公开 Snell 协议服务端与配套客户端,核心主打“零配置负担、内存占用仅数兆、故障一键定位”。

    Snell v1 Release Note
  • 发布 Snell v2:引入 HTTP 伪装与连接复用

    面对运营商基于端口的流量监管,v2 增加了多路复用连接池与可选的 HTTP 握手伪装标头。

    Snell v2 Announcement
  • 发布 Snell v3:增强 UDP 转发与高并发支持

    重构底层 epoll 异步事件调度,支持大规模移动网络请求并发与降低 CPU 唤醒频率。

    Snell v3 Release Note
现代演进

动态记录大小与 QUIC Proxy 支持(2022–2024)

  • 发布 Snell v4:引入动态记录大小优化

    引入 Dynamic Record Sizing 机制,在长流传输时自动自适应调整数据分片,显著降低系统上下文切换。

    Snell v4 Release Note
  • 发布 Snell v5 (v5.0.1) 稳定版

    Snell v5 正式登场!针对现代 Web 广泛采用的 HTTP/3 (QUIC) 流量,原生支持独立的 QUIC 转发管道,降低二次重传延迟。

    Snell v5 Official Documentation
  • Mihomo 社区全面兼容 Snell v5

    开源代理内核 Mihomo 完成对 Snell v5 客户端出站的完整反向兼容支持,使其走出纯 Apple 闭环生态。

    Mihomo Documentation
前沿探索

v6 测试版与 Surge 配套标杆(2025–2026)

  • Surge 团队公布 Snell v6 实验性分支

    探索基于可插拔伪装模式的新一代架构,进一步测试抵御基于机器学习特征分析的可能路径。

    Surge Community Updates
  • 维持 Apple 平台高端自建第一伴生协议地位

    凭借无与伦比的能耗控制、即时错误上报与单二进制部署体验,持续占据高端自建玩家的首选位置。

    Surge Knowledge Base

生态实现与客户端兼容性

04

Snell 作为私有协议,官方客户端仅限 Surge 系列产品; 开源社区部分第三方内核(如 Mihomo / Clash.Meta)通过社区兼容接入了各版本出站支持。

软件 / 内核类型支持平台支持级别最低版本发布日期特性说明
Surge (iOS / macOS)客户端iOS / iPadOS / macOS官方参考实现Surge v3 / v4 / v52018.08.15官方母体客户端,提供无可比拟的排障错误详情展示、网络诊断日志与策略组无缝联动。
Snell Server 官方守护进程核心内核Linux (x86_64 / aarch64 / armv7l / i386)官方参考实现v5.0.12023.11.10官方发布的纯静态独立二进制,常驻内存仅需几兆,自带交互式向导自动生成安全 PSK 凭据。
Mihomo (Clash.Meta)核心内核全平台 (Linux / Android / macOS / Windows)完整原生支持v1.17.02024.04.18开源社区实现,原生兼容 Snell v1/v2/v3/v4/v5 客户端出站连接与分流调度。
Shadowrocket客户端iOS / iPadOS出站客户端支持v2.1.902021.08.20支持导入 Snell 节点链接并解析 PSK 密钥与混淆参数。

适用场景、网络边界与部署建议

05

最佳适用场景

全苹果生态用户搭配 macOS / iOS / iPadOS 版 Surge,享受极低延迟与精准排障; 小内存 VPS(仅需 10MB~20MB 内存占用); 现代 Web 浏览借助 v5 专有 QUIC Proxy 获得优质 HTTP/3 加速。

网络边界与安全注意事项

非对抗型 TLS 伪装,在对高位端口进行严密 DPI 审查的地区易被阻断; 建议配合优质 IPLC/IEPL 专线或国内入口中转使用; 服务端与客户端需确保大版本匹配(如 v5 服务端需对应客户端版本)。

第一手文献与官方参考资料

06

词条事实与技术定义均以 Surge 官方知识库与代码库记录为准:

  1. [1]Snell 官方说明与版本更新日志(Surge Knowledge Base)Surge 官方权威发布的 Snell 各版本特性、下载地址及部署配置说明。https://kb.nssurge.com/surge-knowledge-base/release-notes/snell
  2. [2]Mihomo 官方文档:Snell 协议配置与支持范围Meta 内核对 Snell 节点参数(包括 PSK 密钥、version 5 及 obfs)的兼容说明。https://wiki.metacubex.one/config/proxies/snell/
  3. [3]IETF RFC 8439: ChaCha20 and Poly1305 for IETF ProtocolsSnell 数据包加密所依赖的高性能现代认证加密算法标准。https://datatracker.ietf.org/doc/html/rfc8439
  4. [4]Surge 官方网站(nssurge.com)Snell 协议的发源地与官方主力客户端,提供全平台高级网络调试工具。https://nssurge.com