vmess 转 Clash
把 vmess:// 和 vless:// 节点链接转成 Clash / mihomo 格式的原理和步骤,哪些字段转不了,为什么不要把订阅交给来路不明的在线转换,以及自建转换的开源项目。
转换的原理
vmess:// 和 vless:// 是「分享链接」,一条链接就是一个节点;Clash / mihomo 用 YAML 配置文件,节点写在 proxies: 列表里。转换就是逐个字段对应过去。
下面以 mihomo 官方文档(wiki.metacubex.one)的字段为准。
vmess 链接 → Clash 节点
vmess 链接解码后的 JSON 字段(见 VMess 是什么)和 mihomo 字段的对应:
| vmess JSON | mihomo | 说明 |
|---|---|---|
ps |
name |
节点名称 |
add |
server |
服务器地址 |
port |
port |
端口 |
id |
uuid |
用户 ID |
aid |
alterId |
一般为 0;不为 0 时 mihomo 启用旧版协议 |
scy |
cipher |
一般 auto |
net |
network |
ws、grpc、h2、http 等;tcp 可以不写 |
host、path |
ws-opts 的 headers.Host、path |
WebSocket 时 |
path(grpc) |
grpc-opts.grpc-service-name |
gRPC 时 |
tls |
tls: true |
|
sni |
servername |
转换结果示例(占位值):
proxies:
- name: "vmess-节点"
type: vmess
server: "[服务器地址]"
port: 443
uuid: your-uuid
alterId: 0
cipher: auto
udp: true
tls: true
servername: example.com
network: ws
ws-opts:
path: /path
headers:
Host: example.com
vless 链接 → Clash 节点(mihomo)
| vless 链接参数 | mihomo | 说明 |
|---|---|---|
@ 前的 UUID |
uuid |
|
| 地址、端口 | server、port |
|
type |
network |
tcp、ws、grpc、http、h2、xhttp |
security=tls / reality |
tls: true |
Reality 还要写 reality-opts |
sni |
servername |
|
fp |
client-fingerprint |
|
pbk、sid |
reality-opts.public-key、short-id |
Reality 时 |
flow |
flow |
mihomo 只列出 xtls-rprx-vision |
encryption |
encryption |
不启用时 mihomo 写空字符串 |
# 后的名称 |
name |
VLESS + Reality + Vision 的转换结果(占位值):
proxies:
- name: "reality-节点"
type: vless
server: "[服务器地址]"
port: 443
uuid: your-uuid
udp: true
network: tcp
tls: true
flow: xtls-rprx-vision
servername: www.example.com
client-fingerprint: chrome
reality-opts:
public-key: your-public-key
short-id: your-short-id
encryption: ""
mihomo 文档提到,mihomo 的 xtls-rprx-vision 等同于 Xray 的 xtls-rprx-vision-udp443(不拦截 UDP 443)。
本地转换和自建转换
- 单个节点:用 节点链接解析,粘贴链接后「复制为 Clash/mihomo 节点片段」。解析在浏览器本地完成,不发网络请求、不保存内容;转不了的字段会写明原因。
- 整份订阅:自建开源的 subconverter,订阅地址只经过你自己的机器。
- 不建议:把订阅地址粘贴到陌生的在线转换网站。
转换好的节点放进 mihomo 内核的客户端使用。iPhone 上的 Shadowrocket 也能直接导入 vmess:// 和 vless:// 链接,不需要转换。
vless 能转 Clash 吗?
能,但只能给 mihomo(Clash Meta)内核用,原版 Clash 不支持 VLESS。Reality 的 pbk、sid 要写进 reality-opts 的 public-key、short-id。
机场既有 v2ray 订阅又有 Clash 订阅,用哪个?
用 Clash 的客户端就直接用机场的 Clash 订阅,比自己转换更完整(包括分流规则)。只有机场不提供时才需要转换。
在线订阅转换安全吗?
订阅地址相当于账号密码,交给第三方网站后,对方可以读取并使用你的全部节点。要转换整份订阅,建议自己部署开源的 subconverter,或者只在本地转换单个节点。
哪些字段转不了?
mihomo 不支持的传输方式或参数会丢失,例如 vmess 的 quic 传输(mihomo 文档列出的 vmess 传输方式里没有 quic)。本站的解析工具会写明哪些字段没有转换以及原因,不会静默丢弃。
subconverter 是什么?
subconverter 是一个开源的订阅格式转换程序(GitHub 仓库 tindy2013/subconverter),可以自己部署在电脑或服务器上,把 v2ray 订阅转成 Clash 等格式。本站不提供在线转换服务。