代理协议 · Clash文档

VMess

Clash 生态 VMess 出站配置参考,以当前 Mihomo 字段为准,核对用户 ID、协议版本、加密、UDP、传输层与 TLS 参数。

  • uuid
  • alterId
  • cipher
  • TLS
  • WebSocket
代理协议

VMess 出站字段

本页说明 Clash 生态客户端 proxies 数组中的 VMess 出站字段,不代替 VMess 服务端文档。客户端的认证、传输层和 TLS 参数必须与服务端逐项一致。

最小可解析节点由通用必填字段和 VMess 必填字段组成。是否开启 UDP、TLS 或其他传输层,取决于服务端实际部署。

name必填
节点名称,在同一份配置中不可重复。
type必填
固定填写 vmess
server必填
VMess 服务端的域名或 IP 地址。
port必填
服务端监听端口,必须与服务端一致。

认证、版本与加密字段

uuidalterIdcipher 都被当前字段参考标为必填。它们不是可以互相替代的认证选项。

uuid必填
VMess 用户 ID,必须使用服务端分配的值。
alterId必填
现代配置通常为 0;非零值会启用旧协议形态,只能在服务端仍要求时使用。
cipher必填
可用值为 autononezeroaes-128-gcmchacha20-poly1305
global-padding可选
启用 VMess 全局填充,会增加额外流量,不应脱离服务端和兼容性要求自行开启。
authenticated-length可选
控制长度块加密,客户端与服务端能力需要匹配。

UDP 与数据包编码

允许 UDP 通过节点和选择 UDP 封装格式是两件事。只填写其中一个字段不能保证 UDP 可用。

udp可选
通用字段,默认 false。需要代理 UDP 时设为 true,同时确认服务端支持。
packet-encoding可选
留空时使用原始编码;可选 packetaddrxudp,必须与服务端实现相容。

选择 VMess 传输层

network 选择承载 VMess 的传输层。未填写或填写当前内核不识别的值时按 TCP 处理,因此错误值可能不会直接报错,而是表现为连接超时。

VMess 当前传输层取值
network配套字段适用说明
tcp无专用 opts默认传输层
wsws-optsWebSocket 路径、Host 和 Early Data
httphttp-optsHTTP 方法、路径和请求头
h2h2-optsHTTP/2 Host 和路径
grpcgrpc-optsgRPC 服务名和连接参数
mkcpmkcp-opts仅 VMess 支持的 mKCP 传输
mekyamekya-opts仅 VMess 支持的 Mekya 传输

TLS、Reality 与证书校验

TLS 和 Reality 位于传输安全层,不会改变 VMess 的 uuidalterIdcipher。普通 TLS、Reality 以及其他 TLS 载体应按服务端选择其中适用的配置。

tls可选
设为 true 后启用 TLS;服务端未启用 TLS 时不要填写。
servername可选
VMess 的 SNI 字段。通常留空时使用 server;WebSocket 配置存在 Host 请求头时,当前实现会优先把该 Host 用作 SNI。
alpn可选
TLS 应用层协议列表,顺序和可用值应与服务端传输层一致。
client-fingerprint可选
uTLS 客户端指纹,例如 chrome。它不是证书指纹。
fingerprint可选
服务端证书的 SHA-256 指纹,与 client-fingerprint 含义不同。
reality-opts可选
非空时启用 Reality,至少核对 public-keyshort-id,并与 tls: trueservername 一起按服务端填写。
skip-cert-verify谨慎
跳过 TLS 证书校验会降低身份验证能力,不应作为长期排障方案。

WebSocket 与 TLS 配置示例

下面示例只演示 VMess、WebSocket 与 TLS 的字段层级。域名、路径、UUID 和证书名称都必须替换为服务端提供的值。

YAML
proxies:
  - name: vmess-ws-tls
    type: vmess
    server: edge.example.com
    port: 443
    uuid: 00000000-0000-0000-0000-000000000001
    alterId: 0
    cipher: auto
    udp: true
    packet-encoding: xudp
    tls: true
    servername: origin.example.com
    network: ws
    ws-opts:
      path: /vmess
      headers:
        Host: origin.example.com

常见配置不匹配

VMess 连不上时先逐项对照服务端,不要同时改动多个字段。

  • network 写成 xhttp 或其他不支持的值,当前内核按 TCP 处理后与服务端传输层不一致。
  • 现代服务端要求 alterId: 0,客户端却沿用旧订阅中的非零值。
  • WebSocket 的 pathHost 与反向代理规则不一致。
  • 启用 TLS 后把 servername 写成节点 IP,导致证书名称或 Reality 目标不匹配。