文件 設定 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 設定時指定使用的網域。