ドキュメント 設定 トランスポート層設定

トランスポート層設定

VMess/VLESS/Trojan などのプロトコルは、異なる下位トランスポート方式(network)を選択でき、各トランスポート方式にはそれぞれの *-opts 設定ブロックがあります。

ws-opts(WebSocket)

config.yaml YAML
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

config.yaml YAML
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

config.yaml YAML
network: http
http-opts:
  method: "GET"
  path:
    - '/'
    - '/video'
  headers:
    Connection:
      - keep-alive

h2-optshost はホストドメインのリストです(クライアントがランダムに選択し、サーバー側で検証を行います)。path はリクエストパスです。

mkcp-opts

現在 mKCP トランスポート層は VMess のみ対応しています。他のプロトコルでは使用しないでください。

フィールド説明
mtu / tti最大転送単位 / 転送時間間隔(ミリ秒)
uplink-capacity / downlink-capacity上り/下りの容量(単位:MB/s)
congestion輻輳制御を有効にするかどうか
write-buffer / read-buffer読み書きバッファサイズ(単位:バイト)
seedAES-GCM 認証を有効にする際に使用するシード。空欄の場合はデフォルトの認証を使用
header偽装パケットヘッダー。none/srtp/utp/wechat-video/dtls/wireguard から選択可能

xhttp-opts

現在 xhttp トランスポート層は VLESS のみ対応しています。デフォルトでは h2 モードのみ対応し、h3 を有効にするには alpn: [h3]、HTTP/1.1 を有効にするには alpn: [http/1.1] を設定する必要があります。

config.yaml YAML
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 コネクションプールのサイズです。