TLS フィールド
tls を使用するプロトコル(VMess/VLESS/Trojan/AnyTLS など)は、SNI、証明書検証、uTLS フィンガープリント、REALITY、ECH を含むこの共通の TLS 設定フィールドを共有します。
設定例
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)のリストで、優先順に記述します。両者が ALPN に対応している場合のみ有効になり、共通のプロトコルがない場合は接続に失敗します。
skip-cert-verifyオプション証明書の検証をスキップします。テスト環境や自己署名証明書の場合のみ使用してください。本番環境での使用は推奨されません。
certificate / private-keyオプション両方入力すると mTLS(相互証明書認証)が有効になります。値は PEM の内容またはファイルパスを指定できます。
client-fingerprintVMess/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 設定を取得する際に使用するドメインを指定します。