VMess 出站字段
本页说明 Clash 生态客户端 proxies 数组中的 VMess 出站字段,不代替 VMess 服务端文档。客户端的认证、传输层和 TLS 参数必须与服务端逐项一致。
最小可解析节点由通用必填字段和 VMess 必填字段组成。是否开启 UDP、TLS 或其他传输层,取决于服务端实际部署。
name必填- 节点名称,在同一份配置中不可重复。
type必填- 固定填写
vmess。 server必填- VMess 服务端的域名或 IP 地址。
port必填- 服务端监听端口,必须与服务端一致。
认证、版本与加密字段
uuid、alterId 和 cipher 都被当前字段参考标为必填。它们不是可以互相替代的认证选项。
uuid必填- VMess 用户 ID,必须使用服务端分配的值。
alterId必填- 现代配置通常为
0;非零值会启用旧协议形态,只能在服务端仍要求时使用。 cipher必填- 可用值为
auto、none、zero、aes-128-gcm或chacha20-poly1305。 global-padding可选- 启用 VMess 全局填充,会增加额外流量,不应脱离服务端和兼容性要求自行开启。
authenticated-length可选- 控制长度块加密,客户端与服务端能力需要匹配。
UDP 与数据包编码
允许 UDP 通过节点和选择 UDP 封装格式是两件事。只填写其中一个字段不能保证 UDP 可用。
udp可选- 通用字段,默认
false。需要代理 UDP 时设为true,同时确认服务端支持。 packet-encoding可选- 留空时使用原始编码;可选
packetaddr或xudp,必须与服务端实现相容。
选择 VMess 传输层
network 选择承载 VMess 的传输层。未填写或填写当前内核不识别的值时按 TCP 处理,因此错误值可能不会直接报错,而是表现为连接超时。
| network | 配套字段 | 适用说明 |
|---|---|---|
| tcp | 无专用 opts | 默认传输层 |
| ws | ws-opts | WebSocket 路径、Host 和 Early Data |
| http | http-opts | HTTP 方法、路径和请求头 |
| h2 | h2-opts | HTTP/2 Host 和路径 |
| grpc | grpc-opts | gRPC 服务名和连接参数 |
| mkcp | mkcp-opts | 仅 VMess 支持的 mKCP 传输 |
| mekya | mekya-opts | 仅 VMess 支持的 Mekya 传输 |
TLS、Reality 与证书校验
TLS 和 Reality 位于传输安全层,不会改变 VMess 的 uuid、alterId 或 cipher。普通 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-key和short-id,并与tls: true、servername一起按服务端填写。 skip-cert-verify谨慎- 跳过 TLS 证书校验会降低身份验证能力,不应作为长期排障方案。
WebSocket 与 TLS 配置示例
下面示例只演示 VMess、WebSocket 与 TLS 的字段层级。域名、路径、UUID 和证书名称都必须替换为服务端提供的值。
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 的
path或Host与反向代理规则不一致。 - 启用 TLS 后把
servername写成节点 IP,导致证书名称或 Reality 目标不匹配。
