VLESS アウトバウンドのフィールド
このページでは、Clash エコシステムのクライアントにある proxies 配列内の VLESS アウトバウンドフィールドです。VLESS のユーザー認証、フロー制御、プロトコル暗号化、トランスポート層、TLS セキュリティ層はそれぞれ異なる階層にあり、一つのフィールドからほかの階層を推測することはできません。
最小構成には、共通の必須フィールドと uuid。flow、encryptionだけを含めます。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三つから一つを選択- 動作モードは一つだけ選択できます。このうち
nativeとxorpubは、Vision と組み合わせる場合に Splice を使用できます。 1rtt / 0rtt二つから一つを選択- ハンドシェイクモードは一つだけ選択できます。0-RTT の再利用可否は、サーバー側の ticket 設定にも依存します。
vless-x25519生成コマンド- 次を使用して
mihomo generate vless-x25519X25519 関連の素材を生成します。推測で作成しないでください。 vless-mlkem768生成コマンド- 次を使用して
mihomo generate vless-mlkem768ML-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 を選択した場合にだけ有効です。
| network | 関連フィールド | 用途 |
|---|---|---|
| tcp | 専用の opts はありません | デフォルトのトランスポート層。Vision と組み合わせられます |
| ws | ws-opts | WebSocket のパス、Host、Early Data |
| http | http-opts | HTTP メソッド、パス、リクエストヘッダー |
| h2 | h2-opts | HTTP/2 の Host とパス |
| grpc | grpc-opts | gRPC サービス名と接続パラメーター |
| xhttp | xhttp-opts | VLESS 専用の XHTTP トランスポート |
xhttp-opts.pathサーバー側の設定に従う- XHTTP のリクエストパスです。サーバーまたはリバースプロキシのルーティングと一致させる必要があります。
xhttp-opts.hostサーバー側の設定に従う- XHTTP の Host で、
servernameとは役割が異なります。サーバー構成に合わせて指定してください。 xhttp-opts.mode任意- 使用可能
auto、stream-one、stream-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 がサーバー側と一致しない場合、接続の確立に失敗することがあります。
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