OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 主流序列

    • 代理协议总览
    • Shadowsocks
    • Shadowsocks 2022
    • VMess
    • Trojan
    • VLESS
    • Hysteria 2
  • 新生序列

    • TUIC
    • AnyTLS
    • ShadowQUIC
    • VLESS-Encryption
    • Sudoku
  • 小众序列

    • NaiveProxy
    • Mieru
    • SS-ShadowTLS
    • VLESS-XHTTP
    • Juicity
  • 传统与其他

    • WireGuard
    • 传统协议
    • 孤家寡人协议

AnyTLS

AnyTLS 是一种于 2025 年 3 月发布的新型代理协议,由 sing-box 项目的核心开发者设计。其核心创新在于通过复用 TLS 会话来对抗基于流量统计特征的检测,是目前设计思路最为新颖的代理协议之一。

设计背景

现有的基于 TLS 的代理协议(如 Trojan、VLESS + TLS)虽然在加密层面足够安全,但它们都面临一个共同的问题:代理连接的流量模式与正常的 HTTPS 浏览存在可测量的统计差异。

正常的 HTTPS 浏览行为:

用户打开网页
  → 浏览器建立 TLS 连接
  → 发送 HTTP 请求,接收响应
  → 连接在短时间内关闭或复用(HTTP/2 多路复用)

代理连接的典型行为:

代理客户端建立 TLS 连接
  → 连接长时间保持(隧道保持打开)
  → 大量数据持续双向流动
  → 连接生命周期远长于正常浏览

这种"长连接 + 持续大流量"的模式即使在 TLS 加密之下也可以被流量分析系统通过统计特征识别。AnyTLS 的设计目标正是消除这种可识别的模式。

核心设计:TLS 会话复用

AnyTLS 的核心思路是将代理流量伪装成正常的 TLS 会话生命周期模式:

传统代理的 TLS 模式

[TLS 握手] → [长时间保持的隧道连接] → [大量持续流量] → [连接关闭]

AnyTLS 的 TLS 模式

[TLS 握手] → [短暂的请求/响应交换] → [连接暂停/复用]
            → [新的短暂交换] → [连接暂停/复用]
            → [新的短暂交换] → ...

AnyTLS 通过在 TLS 层之上实现一个自定义的多路复用协议,将代理流量分割成多个短暂的、符合正常 TLS 会话模式的交互单元,而不是维持一个持续的隧道连接。

填充机制

为了进一步对抗基于数据包大小和时间间隔的流量分析,AnyTLS 引入了随机填充机制:

  • 数据包大小会被随机填充至不同的长度,消除固定大小模式
  • 发送时间间隔引入随机抖动,防止通过时序特征识别代理行为
  • 填充的具体策略可以通过配置进行调整

这些设计使得 AnyTLS 的流量统计特征与正常的 HTTPS 流量高度相似,大幅提升了对抗流量分析检测的能力。

与其他 TLS 代理协议的对比

对比维度AnyTLSTrojanVLESS + TLSVLESS + Reality
流量模式伪装模拟正常 TLS 会话行为标准 TLS,模式固定标准 TLS,模式固定Reality 伪装
数据包填充有(随机)无无无
需要域名是是是否
需要证书是是是否
抗流量分析极强较强较强强
多路复用内置有限有限有限
协议成熟度较新(2025)成熟(2017)成熟(2020)成熟(2023)
客户端支持较新,部分支持广泛广泛广泛

AnyTLS-Reality

2025 年 6 月,AnyTLS 推出了与 Reality 的结合版本 AnyTLS-Reality。它将 AnyTLS 的流量模式伪装能力与 Reality 的无需域名特性相结合:

  • 不需要域名和 TLS 证书
  • 同时具备 AnyTLS 的流量行为伪装
  • 目前仅在 sing-box 的最新版本中支持

AnyTLS-Reality 的现状

AnyTLS-Reality 在 2025 年 6 月才推出,目前仅 sing-box 内置支持,其他客户端的支持尚在开发中。如果你的客户端不支持,可以使用标准的 AnyTLS(需要域名)作为替代。

优缺点

优点缺点
流量统计特征伪装能力极强,对抗流量分析协议发布时间较短,社区积累和文档相对有限
随机填充机制消除数据包大小特征客户端支持不如 Trojan、VLESS 广泛
内置多路复用,连接效率高需要域名和 TLS 证书(AnyTLS-Reality 除外)
基于 TLS,利用现有的 TLS 生态填充机制带来额外的带宽开销
sing-box 原生支持,配置简单被检测和分析的历史案例尚少,长期抗性有待验证
同时支持 TCP 和 UDP 代理—

适用场景

推荐使用 AnyTLS 的场景:

  • 对流量分析型检测有顾虑,希望流量模式更接近正常 HTTPS
  • 已有域名和证书,希望尝试比 Trojan 更先进的协议设计
  • 使用 sing-box 作为代理核心,AnyTLS 是 sing-box 的原生协议
  • 对新协议有探索兴趣,希望使用前沿的技术方案
  • 作为 VLESS + Reality 的补充,提供额外的流量模式伪装

需要谨慎考虑的场景:

  • 需要广泛的客户端兼容性(多种设备同时使用同一节点)
  • 客户端不支持 AnyTLS,需要先确认你的客户端版本
  • 极端稳定性要求的生产环境(新协议可能有尚未发现的边缘情况)

服务端部署参考

前置条件

  • 一台公网 VPS,已开放 TCP 443 端口
  • 一个指向服务器 IP 的域名(AnyTLS-Reality 变体则无需)
  • 有效的 TLS 证书(可使用 acme.sh 或 Caddy 自动申请)
  • 已安装 sing-box(需要 1.11.0 或更高版本)

安装 sing-box

# 使用官方安装脚本(Debian/Ubuntu)
bash <(curl -fsSL https://sing-box.app/deb-install.sh)

# 或手动从 GitHub Releases 下载
wget https://github.com/SagerNet/sing-box/releases/latest/download/sing-box-1.x.x-linux-amd64.tar.gz
tar -xzf sing-box-*.tar.gz
mv sing-box /usr/local/bin/

申请 TLS 证书

curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --issue -d your.domain.com --webroot /var/www/html

~/.acme.sh/acme.sh --install-cert -d your.domain.com \
  --cert-file /etc/sing-box/cert.crt \
  --key-file /etc/sing-box/private.key \
  --reloadcmd "systemctl restart sing-box"

生成 UUID

sing-box generate uuid

服务端配置(/etc/sing-box/config.json)

{
  "log": {
    "level": "warn"
  },
  "inbounds": [
    {
      "type": "anytls",
      "tag": "anytls-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "name": "user1",
          "password": "your-uuid-or-password"
        }
      ],
      "tls": {
        "enabled": true,
        "certificate_path": "/etc/sing-box/cert.crt",
        "key_path": "/etc/sing-box/private.key"
      },
      "padding_scheme": "recommended"
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

配置字段说明:

字段说明
users用户列表,每个用户有独立的 name 和 password
tls.certificate_path / tls.key_pathTLS 证书和私钥路径
padding_scheme填充策略,recommended 使用推荐的默认策略

多用户配置示例:

{
  "inbounds": [
    {
      "type": "anytls",
      "tag": "anytls-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "name": "alice",
          "password": "password-for-alice"
        },
        {
          "name": "bob",
          "password": "password-for-bob"
        }
      ],
      "tls": {
        "enabled": true,
        "certificate_path": "/etc/sing-box/cert.crt",
        "key_path": "/etc/sing-box/private.key"
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct"
    }
  ]
}

启动服务

systemctl enable sing-box
systemctl start sing-box
systemctl status sing-box

# 查看日志
journalctl -u sing-box -f

验证配置语法

sing-box check -c /etc/sing-box/config.json

AnyTLS-Reality 服务端配置

如果不想使用域名和证书,可以使用 AnyTLS-Reality 变体:

生成 Reality 密钥对

sing-box generate reality-keypair

输出:

PrivateKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PublicKey:  yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

服务端配置

{
  "inbounds": [
    {
      "type": "anytls",
      "tag": "anytls-reality-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "name": "user1",
          "password": "your-password"
        }
      ],
      "tls": {
        "enabled": true,
        "reality": {
          "enabled": true,
          "handshake": {
            "server": "www.apple.com",
            "server_port": 443
          },
          "private_key": "your-private-key-here",
          "short_id": [
            "a1b2c3d4"
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct"
    }
  ]
}

short_id 可以使用 openssl rand -hex 4 生成。

客户端配置参考

sing-box 客户端配置(标准 AnyTLS)

{
  "type": "anytls",
  "tag": "anytls-node",
  "server": "your.domain.com",
  "server_port": 443,
  "password": "your-password",
  "tls": {
    "enabled": true,
    "server_name": "your.domain.com",
    "utls": {
      "enabled": true,
      "fingerprint": "chrome"
    }
  }
}

sing-box 客户端配置(AnyTLS-Reality)

{
  "type": "anytls",
  "tag": "anytls-reality-node",
  "server": "your.server.ip",
  "server_port": 443,
  "password": "your-password",
  "tls": {
    "enabled": true,
    "server_name": "www.apple.com",
    "utls": {
      "enabled": true,
      "fingerprint": "chrome"
    },
    "reality": {
      "enabled": true,
      "public_key": "your-public-key-here",
      "short_id": "a1b2c3d4"
    }
  }
}

utls.fingerprint 用于模拟真实浏览器的 TLS 指纹,推荐使用 chrome 或 firefox。

客户端支持

AnyTLS 是 2025 年推出的新协议,目前客户端支持尚在快速扩展中:

平台客户端支持状态备注
Windows / macOS / Linuxsing-box支持原生设计,支持最完整
Windows / macOS / LinuxMihomo支持需要较新版本
iOSStash支持(TestFlight)通过 TF 测试版支持
iOSShadowrocket暂不支持—
iOS / macOSSurge支持需要较新版本
iOSLoon支持(TestFlight)通过 TF 测试版支持
AndroidNekoBox支持需要较新版本
AndroidHusi支持sing-box 内核
AndroidExclave支持—
Linuxdae支持—

关于客户端支持

由于 AnyTLS 协议发布时间较短,不同客户端的实现进度不一。在使用前,请确认你的客户端版本是否已支持 AnyTLS。若客户端显示协议不支持,通常升级到最新版即可解决。

常见问题

Q:AnyTLS 和 VLESS + Reality 怎么选?

两者各有侧重:

  • VLESS + Reality 在 TLS 握手阶段的伪装能力更强(真正复用目标网站的 TLS 握手流程)
  • AnyTLS 在握手后的流量行为模式伪装上更有优势(随机填充和会话模式模拟)
  • 两者并不冲突,可以同时部署并根据场景切换
  • 如果你没有域名,优先选 VLESS + Reality;如果有域名且使用 sing-box,AnyTLS 值得尝试

Q:AnyTLS 的随机填充会增加多少流量消耗?

填充开销取决于所选的填充策略。使用 recommended 策略时,额外流量开销通常在 5–15% 之间。对于多数使用场景而言,这个开销是可以接受的。如果对流量消耗非常敏感,可以适当调整填充参数。

Q:服务端使用 sing-box,客户端可以使用 Mihomo 吗?

可以。AnyTLS 是一个开放协议规范,只要客户端和服务端均遵循同一规范实现,即可互通。目前 sing-box 和 Mihomo 均遵循相同的 AnyTLS 协议规范。

Q:padding_scheme 有哪些可选值?

目前 sing-box 的文档中 recommended 是推荐的默认策略,代表使用当前版本中预设的最佳实践填充方案。随着协议发展,未来可能会有更多可配置选项。建议关注 sing-box 官方文档获取最新的配置参考。

Q:AnyTLS 稳定吗,能用于日常使用吗?

AnyTLS 在 sing-box 1.11.0 及以后的版本中已经进入稳定支持阶段,适合日常使用。然而由于协议历史较短,社区的大规模实际使用案例积累有限。建议将其与一个成熟的备选方案(如 VLESS + Reality)并行部署,以防万一。

延伸阅读

  • VLESS 协议 — 了解与 AnyTLS-Reality 共用 Reality 机制的 VLESS 方案
  • Trojan 协议 — 了解同样基于 TLS 的传统方案,客户端支持更广泛
  • 代理协议总览 — 回到协议总览页面
  • sing-box 仓库:github.com/SagerNet/sing-box
  • sing-box 文档:sing-box.sagernet.org
最近更新: 2026/4/9 14:18
Prev
TUIC
Next
ShadowQUIC