Skip to content

AnyTLS — sing-box

AnyTLS 是一种 TLS 形态隧道,借助 padding 技巧伪装流量形状。sing-box 是首个稳定实现;同时支持入站与出站,并提供带会话池的客户端。

入站

type: "anytls"

字段类型默认值允许值描述
users[]AnyTLSUser[][AnyTLSUser]可接受的用户。
padding_schemebadoption.Listable[string](server default)<scheme line> | [<scheme line>]用于塑形线路流量的自定义 padding 方案。接受单个字符串或字符串列表;空 / 未设置使用服务端内置默认。

源码: option/anytls.go:5-10 · 锚定版本 v1.13.11 (553cfa1)

该结构体内嵌 ListenOptionsInboundTLSOptionsContainer。TLS 必须 启用 —— AnyTLS 在线路上始终被 TLS 包裹。

users[]

字段类型默认值允许值描述
namestring(unset)<string>统计与日志中使用的显示名。
passwordstring(required)<string>用户密码。

源码: option/anytls.go:12-15 · 锚定版本 v1.13.11 (553cfa1)

出站

type: "anytls"

字段类型默认值允许值描述
passwordstring(required)<string>服务端密码。
idle_session_check_intervalbadoption.Duration30s<duration>客户端扫描连接池中空闲会话以回收的频率。
idle_session_timeoutbadoption.Duration30s<duration>空闲超过该时长的会话在下一次扫描时关闭。
min_idle_sessionint0<int>至少保持温热的空闲会话数,以便低延迟复用。

源码: option/anytls.go:17-25 · 锚定版本 v1.13.11 (553cfa1)

同时内嵌 DialerOptionsServerOptionsOutboundTLSOptionsContainer。TLS 必填。

示例

入站:

json
{
  "inbounds": [
    {
      "type": "anytls",
      "tag": "anytls-in",
      "listen": "::",
      "listen_port": 443,
      "users": [{ "name": "alice", "password": "<password>" }],
      "tls": {
        "enabled": true,
        "certificate_path": "/etc/ssl/cert.pem",
        "key_path": "/etc/ssl/key.pem"
      }
    }
  ]
}

带保活会话池的出站:

json
{
  "outbounds": [
    {
      "type": "anytls",
      "tag": "anytls-out",
      "server": "example.com",
      "server_port": 443,
      "password": "<password>",
      "min_idle_session": 4,
      "idle_session_check_interval": "30s",
      "idle_session_timeout": "60s",
      "tls": { "enabled": true, "server_name": "example.com" }
    }
  ]
}

说明

  • padding_scheme 既接受单个字符串(内部一行一条规则)也接受字符串 列表。格式遵循 AnyTLS 上游规范 —— 多数用户应保持未设置以使用服务 端默认。
  • 会话池字段(idle_session_check_intervalidle_session_timeoutmin_idle_session)仅用于出站。该池保持 TLS 会话温热,让新的应用 层请求只付一次往返而不是完整 TLS 握手。
  • min_idle_session: 0(默认)按需懒创建会话,并在 idle_session_timeout 后关闭。若你的负载有突发新请求,可调高。

跨内核说明

  • Xray-core 不支持 AnyTLS。参见 AnyTLS — Xray-core
  • mihomo 双端完整支持 AnyTLS,字段名为 kebab-case (idle-session-check-interval 等),并额外暴露 uTLS 指纹与 ECH 选项。参见 AnyTLS — mihomo

源码: option/anytls.go:5-25 · v1.13.11 (553cfa1)

由 Argsment 出品的 Core Tutorial