VMess 的协议特点与 FlClash 配置说明
VMess 是 V2Ray 原创的加密通信协议,底层使用 TCP。它通过 UUID 标识用户,协议中也定义了 UDP 数据模式。在 FlClash 中使用 VMess,需要分清协议本身的能力、mihomo 的配置字段,以及客户端界面提供的操作。
VMess 是什么
V2Fly 协议文档将 VMess 定义为无状态协议:客户端向服务器发送数据前,不必先完成 VMess 自身的握手。这不表示底层 TCP 也省去了连接过程。
用户身份由 UUID 表示。它是一个长度为 16 字节的随机标识,可理解为认证令牌。配置中的 uuid 对应这一身份信息。
VMess 将请求头认证与数据加密分开处理。认证方式包括 AEAD 和 MD5。截至 2026-11-08,V2Fly 文档已将 MD5 认证标为弃用;请求头采用哪一种认证方式,由通信两端协商。
加密与传输分别控制什么
数据加密决定数据流如何处理;传输字段描述连接采用的传输形式。两者不是同一个选项。
V2Fly 列出的数据处理方式包括:
| 名称 | 含义 |
|---|---|
| Legacy | 使用 AES-128-CFB |
| AES-128-GCM | 一种数据加密方式 |
| ChaCha20-Poly1305 | 另一种数据加密方式 |
| None | 文档列出的数据处理选项 |
| Zero | 数据流不加密 |
数据流使用 Zero,不代表请求头也失去保护。请求头仍受 AEAD 或 MD5 认证机制保护。
这些名称也不能直接当作所有客户端的可填值。mihomo 的 cipher 列表与上述协议说明并不完全相同,应按对应字段文档填写。
哪些配置场景会遇到 VMess
已有配置声明 type: vmess 时,需要核对身份、加密和传输字段。若配置涉及 UDP,还要单独检查相关设置,不能只看协议名称。
VMess 的命令字段包含 UDP 数据模式。因此,“运行在 TCP 上”与“能够承载 UDP 数据”可以同时成立。关于两类传输的区别,可阅读 TCP 与 UDP 在代理中的含义。
mihomo 的 VMess 示例出现了 udp: true,但没有为它单列解释。这个示例不足以证明任意配置中的 UDP 都能正常使用。
在 FlClash 中核对哪些字段
FlClash 一般使用 mihomo 内核。其 README 没有逐项列出代理协议支持范围,VMess 配置应参照 mihomo 的 VMess 字段文档。
截至 2026-11-08,该文档列出的主要字段如下:
| 字段 | 核对内容 |
|---|---|
uuid | 必填的用户标识 |
alterId | 必填;不为 0 时启用旧协议 |
cipher | 可填 auto、none、zero、aes-128-gcm、chacha20-poly1305 |
network | 列出 ws、http、h2、grpc、mkcp、mekya;其他值按 tcp 处理 |
packet-encoding | 留空使用原始编码,也可选 packetaddr 或 xudp |
global-padding | 文档列出的配置字段 |
authenticated-length | 文档列出的配置字段 |
添加或编辑 VMess 的具体界面路径,官方没有说明。导入配置的操作可参阅 FlClash 配置导入教程。
network 中列出某种取值,不等于 FlClash 已明确确认它在各平台的实际表现。对于 mkcp、mekya 在 FlClash 中的支持情况,官方没有说明。
使用前注意时间与字段来源
截至 2026-11-08,Xray 的 VMess 文档要求系统 UTC 时间与真实时间的偏差不超过 120 秒。V2Fly 的协议页涉及时间戳认证,但没有给出这一偏差上限。排查认证问题时,应留意系统时间。
Xray 使用 security 表示加密选项,mihomo 使用 cipher。不要把不同实现的字段名直接互换。
mihomo 示例还出现了 tls、servername、alpn、client-fingerprint、skip-cert-verify、reality-opts 和 smux。相关含义需结合其通用字段与 TLS 文档理解,不能只凭字段名称判断。
截至 2026-11-08,以上字段范围依据当日查看的 mihomo 文档;后续变更应以项目文档为准。连接或导入问题也可查阅 FlClash 常见问题。
第三方整理,与项目方无关。