トランスポート層設定
VMess/VLESS/Trojan などのプロトコルは、異なる下位トランスポート方式(network)を選択でき、各トランスポート方式にはそれぞれの *-opts 設定ブロックがあります。
ws-opts(WebSocket)
network: ws ws-opts: path: /path headers: Host: example.com v2ray-http-upgrade: false
path はリクエストパス、headers はリクエストヘッダー、max-early-data/early-data-header-name は Early Data の先頭パケット長の閾値設定、v2ray-http-upgrade/v2ray-http-upgrade-fast-open は HTTP Upgrade 方式で接続を確立します(一部の CDN 環境で必要)。
grpc-opts
network: grpc grpc-opts: grpc-service-name: example
grpc-service-name は gRPC サービス名、ping-interval はハートビート間隔(秒、デフォルト無効)、max-connections は最大接続数(デフォルト 1、下位接続を1本のみ使用)、min-streams/max-streams は1接続内のストリーム数を制御し、これら3つは互いに排他的なので必要に応じて1つの方式を選んでください。Mihomo の H2 トランスポート層はマルチプレキシングを実装していないため、マルチプレキシングが必要な場合は gRPC または sing-mux(共通フィールドの smux を参照)の使用を推奨します。
h2-opts / http-opts
network: http http-opts: method: "GET" path: - '/' - '/video' headers: Connection: - keep-alive
h2-opts の host はホストドメインのリストです(クライアントがランダムに選択し、サーバー側で検証を行います)。path はリクエストパスです。
mkcp-opts
現在 mKCP トランスポート層は VMess のみ対応しています。他のプロトコルでは使用しないでください。
| フィールド | 説明 |
|---|---|
mtu / tti | 最大転送単位 / 転送時間間隔(ミリ秒) |
uplink-capacity / downlink-capacity | 上り/下りの容量(単位:MB/s) |
congestion | 輻輳制御を有効にするかどうか |
write-buffer / read-buffer | 読み書きバッファサイズ(単位:バイト) |
seed | AES-GCM 認証を有効にする際に使用するシード。空欄の場合はデフォルトの認証を使用 |
header | 偽装パケットヘッダー。none/srtp/utp/wechat-video/dtls/wireguard から選択可能 |
xhttp-opts
現在 xhttp トランスポート層は VLESS のみ対応しています。デフォルトでは h2 モードのみ対応し、h3 を有効にするには alpn: [h3]、HTTP/1.1 を有効にするには alpn: [http/1.1] を設定する必要があります。
network: xhttp xhttp-opts: path: "/" host: xxx.com # mode: "stream-one" # stream-one / stream-up / packet-up から選択可能 # x-padding-bytes: "100-1000" # reuse-settings: # つまり XMUX による接続の再利用 # max-concurrency: "16-32"
フィールドが多く、主に path/host(リクエストパスとホスト名)、mode(ストリームモード)、複数の x-padding-* パディング難読化パラメータ、および reuse-settings(XMUX による接続再利用の設定で、1つの下位接続で処理できる並行リクエスト数を制御)があります。特別な CDN 互換性の要件がなければデフォルト値のままで構いません。
mekya-opts
現在 Mekya トランスポート層は VMess のみ対応しています。
HTTP ベースのポーリング伝送で、内部に KCP パラメータ(フィールドの意味は上記の mkcp-opts と同じ)を含みます。主なフィールド:url はサーバーアドレス、max-write-delay は先頭パケット後の最大集約待機時間(ミリ秒)、max-request-size は1回の HTTP リクエストの最大ペイロード(バイト)、h2-pool-size は HTTP/2 コネクションプールのサイズです。