什么是 Fragment?
在网络连接的起始阶段,客户端会发送一个至关重要的包——TLS Client Hello。这个包里包含了你要访问的域名(SNI)。
- 审查者的逻辑: 盯着每一个连接的第一个包。如果发现里面的 SNI 是被屏蔽的网站,直接掐断。
- Fragment 的逻辑: 既然你盯着第一个包看,那我就把这第一个包切成碎片发送。
例如,原本一个 500 字节的握手包,Fragment 会把它拆成 1 字节、10 字节、489 字节的三份。当审查设备的 DPI(深度数据包检测)试图拼凑这些碎片来识别特征时,往往因为处理逻辑的局限性或为了保持网络吞吐性能,而选择直接放行这些“零碎”的数据。
Fragment 技术作为代理软件的核心功能,主要在 2023 年上半年集中爆发并进入主流视野:
| 平台 / 内核 | 精确发布日期 | 关联版本 |
| Xray-core | 2023年3月2日 | 随 Xray-core v1.8.0 正式发布。该版本同时引入了 REALITY,Fragment 作为配套的混淆手段上线。 |
| sing-box | 2023年2月12日 | 随 sing-box v1.1.0 正式引入 fragment 拨号选项,允许在所有流式传输中启用分片。 |
| v2ray-core | 2023年4月11日 | 随 v2ray-core v5.4.1 左右版本跟进支持(主要通过自定义配置实现)。 |
Fragment 的核心特色
Fragment 不仅仅是简单的切割,它通常包含三个维度的控制:
1. 长度控制 (Length)
你可以指定切分的字节数。例如 1-5 字节,这种极小的切分会让大多数基于特征库匹配的防火墙感到头疼,因为它们很难从 1 个字节里读出任何有意义的指纹。
2. 时间控制 (Interval)
在发送不同碎片之间加入微小的毫秒级延迟。这种时间上的错位,能有效对抗那些试图通过重组缓冲区来还原原始包的审查设备。
3. 策略控制 (Packets)
你可以选择只对 TLS 握手包(第一个包)进行切分,也可以对所有数据包进行切分。通常只切分握手包就能达到“瞒天过海”的效果,且对网速几乎无影响。
为什么 Fragment 如此有效?
1. 专门针对 SNI 阻断
在很多地区,防火墙是通过识别 HTTPS 握手中的 SNI 域名来进行精准打击的。Fragment 物理性地打断了域名的连续性,让 DPI 无法在单一数据包内扫描出敏感词。
2. “正当”的协议行为
TCP 协议本身就允许分片(Segmentation)。Fragment 只是利用了 TCP 协议的标准特性。如果防火墙粗暴地拦截所有分片包,会导致大量正常的网页浏览和软件更新失效。这种“杀敌一千自损八百”的代价,是审查系统难以承受的。
3. 极低的性能开销
相比于复杂的加密混淆,Fragment 只是做了一次“剪纸”。它对 CPU 的占用微乎其微,非常适合在路由器等低功耗设备上运行。
Fragment vs. Reality vs. Vision
这是目前防封锁的三大支柱,它们各有侧重:
| 维度 | Reality | Vision | Fragment |
| 防御核心 | 借用合法证书(伪装身份)。 | 动态填充长度(伪装流量特征)。 | 物理拆分数据包(避开扫描)。 |
| 针对痛点 | 证书探测/域名屏蔽。 | TLS 指纹识别/流量分析。 | SNI 过滤/关键字扫描。 |
| 兼容性 | 需特定客户端支持。 | 需 Xray 1.6+。 | 极其广泛(许多基础内核支持)。 |
| 延迟影响 | 几乎无。 | 极低。 | 微量(取决于间隔设置)。 |
谁最适合使用 Fragment?
- 遭遇 SNI 针对性干扰的用户: 如果你的节点 IP 没被墙,但一用域名就断流,Fragment 是特效药。
- 低端硬件用户: 在性能受限的旧路由或便宜 VPS 上,Fragment 提供了极高性价比的安全加固。
- 搭配 Reality 使用: 这是目前的“终极方案”之一。Reality 解决“我是谁”的问题,Fragment 解决“我发了什么”的问题。
Fragment 的魅力在于它以柔克刚,它不硬碰硬,而是利用规则本身的空隙,让复杂的审查系统在海量的碎片数据面前显得力不从心。