文档 配置 TLS 字段

TLS 字段

用了 tls 的协议(VMess/VLESS/Trojan/AnyTLS 等)都共享这一套 TLS 配置字段,包括 SNI、证书校验、uTLS 指纹、REALITY 和 ECH。

配置示例

config.yaml YAML
proxies:
  - name: "tls-example"
    tls: true
    sni: example.com
    fingerprint: xxx
    alpn:
      - h2
      - http/1.1
    skip-cert-verify: true
    client-fingerprint: chrome
    reality-opts:
      public-key: xxxx
      short-id: xxxx
    ech-opts:
      enable: true
      config: base64_encoded_config

核心字段

tls可选

启用 TLS,仅对支持 tls 的协议生效;Trojan 协议强制启用。

sni / servername可选

服务器名称指示。VMess/VLESS 里叫 servername,留空则默认用 server 里的地址。

fingerprint可选

证书指纹,可用 openssl x509 -noout -fingerprint -sha256 -inform pem -in yourcert.pem 获取,也能在浏览器"证书查看器"的 SHA256 指纹里找到。填叶子证书指纹时只校验服务端证书是否匹配;填中级/根证书指纹时会校验证书链是否由它签发。

alpn可选

支持的应用层协议协商列表,按优先顺序排列;双方都支持 ALPN 时才会生效,没有共同协议则连接失败。

skip-cert-verify可选

跳过证书验证,测试环境或自签证书场景才需要,生产环境不建议开启。

certificate / private-key可选

两项同时填写则开启 mTLS(双向证书认证),值可以是 PEM 内容或文件路径。

client-fingerprint仅 VMess/VLESS/Trojan/AnyTLS

客户端 uTLS 指纹,用来模拟真实浏览器的 TLS 特征。可选 chrome/firefox/safari/ios/android/edge/360/qq/random(按真实浏览器分布概率随机生成)。

reality-opts

REALITY 配置,不为空则启用。

public-key必须

REALITY 服务端私钥对应的公钥。

short-id必须

服务端配置的 short id 之一。

support-x25519mlkem768可选

支持 X25519-MLKEM768 后量子密钥交换。

由于上游实现的兼容性问题,不建议搭配 xray-core v26.7.11 及以上版本使用 REALITY;建议换用 mihomo 原生 listener、sing-box 或旧版 xray-core 作为服务端。

ech-opts

enable可选

启用 ECH(Encrypted Client Hello)。

config可选

ECH 配置内容,留空则通过 DNS 解析获取,填写则用该 base64 编码的值。可以用 mihomo generate ech-keypair test.com 命令生成一对自签配置,输出里 Config: 后面的内容填在这里,Key: 后面的内容填在服务端配置里。

query-server-name可选

通过 DNS 解析 ECH 配置时指定使用的域名。