文件 設定 傳輸層設定

傳輸層設定

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(只用一條底層連線);min-streams/max-streams 控制單條連線內的流數量,三者兩兩衝突,按需選一種策略。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

目前僅 VMess 支援 mKCP 傳輸層,請勿在其他協議上使用。

欄位說明
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

目前僅 VLESS 支援 xhttp 傳輸層。預設僅支援 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 連結複用設定,控制單條底層連線可承載多少並行請求)。沒有特殊 CDN 相容需求的話,保持預設值即可。

mekya-opts

目前僅 VMess 支援 Mekya 傳輸層。

基於 HTTP 的輪詢傳輸,內部包含一份 KCP 參數(欄位含義同上面的 mkcp-opts)。核心欄位:url 伺服端位址、max-write-delay 首包後最大聚合等待時間(毫秒)、max-request-size 單次 HTTP 請求最大負載(位元組)、h2-pool-size HTTP/2 連線池大小。