本地配置工具
VLESS 转 Xray JSON
生成 Xray-core 需要的 vnext / streamSettings 结构,包含 realitySettings。
链接只留在这台设备上
转换完全在浏览器中进行,不会上传、保存链接,也不会把链接写入页面地址。
转换结果
为什么有些链接会被拒绝
如果一个参数无法在不改变连接行为的前提下映射过去,工具会明确报错,而不是悄悄丢掉。Xray-core 不支持任何 QUIC 原生协议,所以 Hysteria2 和 TUIC 链接会直接被拒绝,而不是揉成一个看上去差不多的东西。证书锁定和 2024 年之后新增的 REALITY 字段同理。
如何导入 Xray / v2rayN
Xray-core 可以直接把这份 JSON 当配置文件读。注意 Xray 以第一个 outbound 为当前生效节点——文件里有多个节点时,切换要改 routing,而不是点一下选择器。
VLESS 转换成 Xray 的字段映射规则
左边是 VLESS 链接里的写法,右边是它在 Xray 配置里对应的字段;无法映射的会明确报错。
| 链接里的写法 | Xray 配置里的字段 | 说明 |
|---|---|---|
uuid@host:port | settings.vnext[].users[].id | @ 之前是 UUID,格式不合法会直接报错。 |
security=tls | streamSettings.security: "tls" | 没写 security=tls 就按明文处理,下面那些只在 TLS 下有意义的参数会被拒绝。 |
security=reality + pbk / sid | realitySettings.publicKey / shortId | sid 必须是偶数长度的十六进制,最长 16 位。 |
sni | realitySettings.serverName / tlsSettings.serverName | 省略时回落到服务器地址。三家的键名各不相同:Mihomo 是 servername,sing-box 是 server_name,Xray 是 serverName。 |
fp | tlsSettings.fingerprint | 不写时默认 chrome。不认 识的指纹会报错,而不是悄悄回落。 |
alpn | tlsSettings.alpn | 链接里是逗号分隔,三种目标格式里都是数组。 |
flow=xtls-rprx-vision | settings.vnext[].users[].flow | 原样保留。只有在 TCP + TLS / REALITY 组合下才有意义。 |
type=ws + path / host | streamSettings.wsSettings | host 作为 Host 头传递;ed 和 eh 转换成 max-early-data 与 early-data-header-name。 |
type=grpc + serviceName | grpcSettings.serviceName | 只支持 gun 模式,mode=multi 会被拒绝。 |
type=h2 / type=http | 拒绝并报错 | Xray 已经移除 HTTP/2 传输,所以输出 Xray 时这一行会被拒绝,而不是改写成 XHTTP——那在链路上是另一种协议。 |
type=xhttp | streamSettings.xhttpSettings | Mihomo 需要 1.19 以上,Xray 需要 24.11 以上;sing-box 根本没有这种传输方式,输出 sing-box 时这一行会被拒绝。 |
type=httpupgrade | streamSettings.httpupgradeSettings | Mihomo 把 HTTPUpgrade 建模成 WebSocket 上的一个开关,另外两家是独立的传输类型。 |
allowInsecure=1 | 拒绝并报错 | 会转换,但同时给出警告:关掉证书校验等于放弃对中间人的防护。Xray 已改用证书锁定并移除了这个选项,所以输出 Xray 时会拒绝这条链接。 |
pqv / spx / pcs / vcn / ech | 拒绝并报错 | 2024 年之后新增的 REALITY 字段,目前没有可靠映射,会明确报错而不是丢掉。 |
常见问题
- VLESS 转成 Xray 之后要用哪个客户端?
- 用 Xray-core 1.8.16 以上,或 v2rayN、v2rayNG 这类以 Xray 为内核的客户端。注意 Xray 以第一个 outbound 为当前生效节点,多个节点之间切换要自己改 routing。
- 这个 VLESS 转换器免费吗?会不会上传我的节点链接?
- 完全免费,也不需要登录。转换是这个页面里的 JavaScript 在你自己的浏览器里做的,链接不会上传服务器、不会写进页面地址、也不做任何存储——关掉标签页就没了。
- 可以直接把订阅链接转成 Xray 吗?
- 可以,但要粘贴订阅地址返回的内容(通常是一长串 base64),而不是订阅地址本身——浏览器受同源策略限制,拿不到订阅的内容。一份订阅里混合多种协议也没问题。
- VLESS 转换成 Xray 之后连不上是什么原因?
- 这里做的只是把链接翻译成配置,校验的是配置结构,不检测服务器能否连通。先确认同一条链接在原客户端可用,再看客户端版本——XHTTP 传输需要 Xray 24.11 以上。
这里生成的是一次性本地配置,不是自动更新的订阅;工具只检查配置结构,不检测服务器能否连接。