プロキシプロトコル · Clash ドキュメント

VLESS

現在の Mihomo フィールドに基づく Clash 系 VLESS アウトバウンド設定です。UUID、Vision、VLESS Encryption、Reality、UDP、トランスポートの違いを整理します。

  • uuid
  • encryption
  • Vision
  • Reality
  • UDP
プロキシプロトコル

VLESS アウトバウンドのフィールド

このページでは、Clash エコシステムのクライアントにある proxies 配列内の VLESS アウトバウンドフィールドです。VLESS のユーザー認証、フロー制御、プロトコル暗号化、トランスポート層、TLS セキュリティ層はそれぞれ異なる階層にあり、一つのフィールドからほかの階層を推測することはできません。

最小構成には、共通の必須フィールドと uuidflowencryptionだけを含めます。TLS、Reality、UDP、TCP 以外のトランスポート層は、実際のサーバー設定に合わせて追加してください。

name必須
ノード名です。同じ設定内で重複させることはできません。
type必須
固定値 vless。VLESS に対応する最新のコアが必要です。
server必須
VLESS サーバーのドメインまたは IP アドレスです。
port必須
サーバーの待受ポートです。サーバー側と一致させる必要があります。
uuid必須
VLESS のユーザー ID です。サーバーから割り当てられた値を使用する必要があります。

Flow と XTLS Vision

flow VLESS のサブプロトコルを選択します。現在のフィールドリファレンスに記載されているのは xtls-rprx-visionだけです。未指定の場合、このフロー制御は使用されません。

flow任意
現在使用できる値は xtls-rprx-visionです。サーバー側のユーザー設定と一致させる必要があります。
xtls-rprx-visionフロー制御
Vision は TLS や Reality を自動的に有効にせず、 uuid または encryption

VLESS Encryption

encryption の代わりにもなりません。これは VLESS プロトコル層の任意の暗号化設定であり、VMess の cipherでもありません。また、TLS や Reality を自動的に有効にすることもありません。現在の公式の基本例では空文字列を使い、新しい VLESS Encryption パラメーターを有効にしないことを示します。

有効にする場合は、サーバーが生成して配布した完全な文字列をそのまま使用してください。この文字列にはアルゴリズム、動作モード、ハンドシェイクモード、任意のパディング、鍵素材が含まれ、クライアントとサーバーを対にして設定する必要があります。

encryptionサーバー側の設定に従う
新しい方式が有効でない場合は、公式例の空文字列を使います。サーバー側で有効になっている場合は、完全に一致する値を指定する必要があります。
mlkem768x25519plusアルゴリズム
現在のドキュメントに記載されたハイブリッド鍵交換方式の識別子です。記載のないアルゴリズム名へ手動で変更しないでください。
native / xorpub / random三つから一つを選択
動作モードは一つだけ選択できます。このうち nativexorpub は、Vision と組み合わせる場合に Splice を使用できます。
1rtt / 0rtt二つから一つを選択
ハンドシェイクモードは一つだけ選択できます。0-RTT の再利用可否は、サーバー側の ticket 設定にも依存します。
vless-x25519生成コマンド
次を使用して mihomo generate vless-x25519 X25519 関連の素材を生成します。推測で作成しないでください。
vless-mlkem768生成コマンド
次を使用して mihomo generate vless-mlkem768 ML-KEM-768 関連の素材を生成します。
padding1-RTT のみ
パディングパラメーターは 1-RTT にだけ適用され、省略できます。先頭のパディングは 100% の確率かつ 35 バイト以上にする必要があります。

UDP とパケットエンコーディング

udp ノードで UDP を許可するかを制御し、packet-encoding VLESS における UDP のカプセル化方式を制御します。別々のフィールドです。

udp任意
共通フィールドです。デフォルトは falseです。UDP をプロキシする場合は trueに設定し、サーバー側も対応していることを確認してください。
packet-encoding任意
現在の VLESS 実装では、空欄の場合にデフォルトで xudpを使用します。次を明示的に指定することもできます: packetaddr または xudp。サーバー実装との互換性が必要です。

TLS、Reality、証明書のフィールド

TLS と Reality はトランスポートセキュリティ層にあります。reality-opts 空でない場合は Reality が有効になり、 tls も同時に trueに設定する必要があります。そうしないと、現在のコアはノードの作成を拒否します。

tlsReality では必須
次の値に設定すると true にすると TLS が有効になります。 reality-opts を指定する場合は、必ず同時に有効にしてください。
servername任意
VLESS の SNI フィールドです。通常、空欄の場合は serverを使用します。WebSocket 設定に Host リクエストヘッダーがある場合、現在の実装ではその Host が SNI として優先されます。
alpn任意
TLS のアプリケーション層プロトコル一覧です。選択したトランスポート層およびサーバー側と一致させる必要があります。
client-fingerprint任意
uTLS のクライアントフィンガープリントです。例: chrome。証明書のフィンガープリントではありません。
fingerprint任意
サーバー証明書の SHA-256 フィンガープリントです。 client-fingerprint とは意味が異なります。
reality-opts.public-keyReality
サーバーの Reality 秘密鍵に対応する公開鍵です。
reality-opts.short-idReality
サーバーで許可された short ID のいずれかを指定します。
reality-opts.support-x25519mlkem768任意
X25519-MLKEM768 鍵交換への対応を宣言します。サーバー側も対応している必要があります。
skip-cert-verify慎重に使用
証明書の検証を省略すると、接続先を認証する能力が低下します。恒久的なトラブルシューティング手段として使用しないでください。

VLESS のトランスポート層を選ぶ

未指定の場合、 network または未対応の値を指定した場合、現在のコアは TCP として処理します。対応する *-opts は、その network を選択した場合にだけ有効です。

VLESS で現在選択できるトランスポート層
network関連フィールド用途
tcp専用の opts はありませんデフォルトのトランスポート層。Vision と組み合わせられます
wsws-optsWebSocket のパス、Host、Early Data
httphttp-optsHTTP メソッド、パス、リクエストヘッダー
h2h2-optsHTTP/2 の Host とパス
grpcgrpc-optsgRPC サービス名と接続パラメーター
xhttpxhttp-optsVLESS 専用の XHTTP トランスポート
xhttp-opts.pathサーバー側の設定に従う
XHTTP のリクエストパスです。サーバーまたはリバースプロキシのルーティングと一致させる必要があります。
xhttp-opts.hostサーバー側の設定に従う
XHTTP の Host で、 servername とは役割が異なります。サーバー構成に合わせて指定してください。
xhttp-opts.mode任意
使用可能 autostream-onestream-up または packet-up

Reality と Vision の設定例

この例では、VLESS、Reality、Vision のフィールド階層を示します。ここでは encryption を空文字列のままにし、新しい VLESS Encryption パラメーターが無効であることを示しています。

  • VMess の alterId または cipher を VLESS ノードに指定しないでください。
  • サーバー側で VLESS Encryption が有効になっているのに、クライアントで空文字列を使い続けると、設定が一致しません。
  • flow: xtls-rprx-vision、TLS、Reality は三つの独立した設定項目です。それぞれ個別に確認してください。
  • XHTTP のパス、Host、モード、ALPN がサーバー側と一致しない場合、接続の確立に失敗することがあります。
YAML
proxies:
  - name: vless-reality-vision
    type: vless
    server: 203.0.113.10
    port: 443
    uuid: 00000000-0000-0000-0000-000000000001
    udp: true
    packet-encoding: xudp
    flow: xtls-rprx-vision
    encryption: ""
    tls: true
    servername: cover.example.com
    client-fingerprint: chrome
    reality-opts:
      public-key: your-public-key
      short-id: your-short-id
    network: tcp