- 单一职责:专注 VLESS → Clash 转换,不做多余的事,代码精简、启动快。
- Serverless 部署:运行在 Cloudflare Workers 上,无需自建服务器,全球边缘节点加速。
- 一键转换:粘贴 VLESS 链接,自动生成可直接导入 Clash 的 YAML 配置。
- 实时节点预览:输入后自动解析节点,展示名称、服务器、传输方式和安全类型,无需写入 KV。
- 可视化节点管理:支持搜索、全选、批量删除以及单节点编辑,并将修改同步回 VLESS URI。
- 自动去重:相同服务器 + 端口 + UUID 的节点自动合并,告别冗余。
- KV 自动配置:部署时自动检测/创建 KV namespace,无需手动操作。
- 默认关闭匿名管理:必须配置管理密码;缺少密码时管理页面和管理 API 默认拒绝访问。
- 安全会话:会话保存在 KV 中并设置有效期,管理页面使用
HttpOnly、SameSite=StrictCookie。 - 人机验证:可选 Cloudflare Turnstile 验证,防止滥用。
- VLESS 协议解析:支持 TCP / WebSocket / gRPC / XHTTP 传输以及 TLS / Reality 安全配置,保留原始扩展参数。
- 节点去重:基于
server:port:uuid自动识别并去除重复节点。 - Clash YAML 输出:使用 GEOSITE / GEOIP 内置规则,无需下载额外规则集。
- 节点实时预览:输入 VLESS URI 后即时查看、搜索、编辑和批量删除节点。当前预览对象为节点信息,最终 Clash YAML 通过订阅地址获取。
- 订阅管理:保存、查看、编辑、更新和删除订阅,支持节点详情展开、订阅搜索和链接复制。
- 并发安全索引:每个订阅使用独立 KV 索引,避免并发写入覆盖,索引与订阅使用相同有效期。
- 终端风格 UI:白蓝配色的终端窗口界面,侧边栏导航,macOS 风格交通灯按钮(红点为退出),Material Design 3 色彩体系。
- 一个 Cloudflare 账号。
- Node.js 环境 (v18+)。
- Fork 本仓库 到你的 GitHub 账号。
- 修改配置:部署前请先修改
wrangler.toml中的以下配置:routes.pattern:改为你自己的域名(需已在 Cloudflare 注册或接入)ADMIN_PASSWORD:通过 Cloudflare Dashboard Secret 配置;未配置时管理端默认拒绝访问
- 创建应用:登录 Cloudflare Dashboard,进入 Workers & Pages,选择 "Import a repository",关联你 fork 的仓库。
- 填写构建命令:在部署设置中,将"构建命令"填写为
npm run setup-kv。 - 配置环境变量:在 Settings → Environment Variables 中添加:
ADMIN_PASSWORD:管理密码,必须配置为 SecretTURNSTILE_SITEKEY:可选,Turnstile Site KeyTURNSTILE_SECRET_KEY:可选,Turnstile Secret Key
- 部署:点击保存并部署,KV namespace 会自动检测,不存在则自动创建。
# 克隆仓库
git clone https://github.com/newbietan/Vless2Clash.git
cd Vless2Clash
# 安装依赖
npm install
# 登录 Cloudflare
npx wrangler login
# 写入管理密码,密码不会保存到仓库
npx wrangler secret put ADMIN_PASSWORD
# 一键部署(自动创建 KV namespace + 部署)
npm run deploy在 Cloudflare Dashboard → Workers → Settings → Environment Variables 配置,或写入 wrangler.toml 的 [vars] 段:
| 变量 | 必填 | 说明 |
|---|---|---|
ADMIN_PASSWORD |
是 | 管理密码,建议配置为 Cloudflare Secret |
DISABLE_AUTH |
否 | 仅在明确需要公开管理端时设为 true |
TURNSTILE_SITEKEY |
否 | Turnstile Site Key,不设置则跳过验证 |
TURNSTILE_SECRET_KEY |
否 | Turnstile Secret Key |
本地命令行部署可通过以下命令写入密码,密码不会进入仓库:
npx wrangler secret put ADMIN_PASSWORD未配置 ADMIN_PASSWORD 时管理页面和管理 API 默认拒绝访问。只有显式设置 DISABLE_AUTH=true 才会关闭认证,请勿在公网环境使用该选项。
- 登录 Cloudflare Dashboard,进入 Turnstile 页面创建一个新的 Widget。
- 获取 Site Key 和 Secret Key。
- 在 Cloudflare Dashboard 的 Worker 环境变量中添加
TURNSTILE_SITEKEY和TURNSTILE_SECRET_KEY。 - 重新部署使配置生效。
访问部署地址,输入 ADMIN_PASSWORD 对应的管理密码登录。登录成功后会创建有效期为 24 小时的 KV 会话。
- 在仪表盘输入 VLESS 链接,每行一个。
- 页面会自动显示节点数量和节点预览,无需先保存订阅。
- 可按节点名称、服务器或地区搜索,也可编辑、单独删除或批量删除节点。
- “去重”开启时,相同服务器、端口和 UUID 的节点只保留一个;关闭后保留全部节点。
节点编辑会保留 Reality 公钥、Short ID、指纹及其他未展示的原始查询参数。
- 确认节点预览无误后,点击“转换为 Clash 配置”。
- 服务端会重新校验并规范化 VLESS URI,然后保存到 KV。
- 复制生成的订阅链接,并添加到 Clash / Mihomo 客户端。
- 点击"订阅管理"查看所有已保存的订阅
- 点击订阅记录展开查看节点详情
- 可复制订阅链接、搜索订阅或删除订阅
- 点击编辑按钮返回仪表盘修改节点,再点击“更新订阅”即可保留原订阅地址
在 Clash / Mihomo 客户端中添加订阅:
- 订阅名称:自定义
- 订阅地址:生成的链接
- 自动更新:建议 3600 秒
- PROXY — 默认国外代理选择,包含全部节点和
DIRECT - AI — AI 服务专用分组,可独立选择节点(例如专门用于 OpenAI/Claude 的线路)
- 国内流量走内建的
DIRECT,无需单独建组
使用 GEOSITE / GEOIP 内置规则,无需下载额外规则集,也无需维护写死的域名列表:
- 私有网络 → 直连
- 广告域名 → 拒绝
- 中国域名(
GEOSITE,cn) → 直连 - 中国 IP(
GEOIP,CN) → 直连 - AI 服务(OpenAI、Anthropic、Gemini、Cursor 等) →
AI - 其余国外流量 →
PROXY
生成的配置面向支持 GEOSITE / GEOIP 规则的 Clash.Meta / Mihomo 内核。
npm install
npm run dev运行测试:
npm testsrc/
├── adapters/kv/
│ ├── cloudflareKv.js # Cloudflare KV 适配器
│ └── memoryKv.js # 测试用内存 KV
├── app/
│ └── createApp.jsx # Hono 路由
├── builders/
│ └── SimpleClashConfigBuilder.js # Clash 配置生成
├── components/
│ ├── Layout.jsx # 白蓝终端风格布局(侧边栏导航)
│ ├── LoginPage.jsx # 登录页面
│ ├── DashboardPage.jsx # 仪表盘
│ └── SubscriptionsPage.jsx # 订阅管理
├── parsers/protocols/
│ └── vlessParser.js # VLESS 链接解析
├── runtime/
│ ├── cloudflare.js # Cloudflare 运行时适配
│ └── runtimeConfig.js # 配置规范化
├── services/
│ ├── authService.js # 认证服务
│ ├── configStorageService.js # 配置存储
│ ├── loginThrottleService.js # 登录防爆破(按 IP 限速)
│ └── turnstileService.js # Turnstile 验证
├── constants.js # 应用常量
├── utils.js # 工具函数
└── worker.jsx # Cloudflare Workers 入口
public/dashboard.js 为仪表盘前端脚本,由 Cloudflare Assets 直接提供(不再内联于 JSX)。
- 运行时: Cloudflare Workers
- 框架: Hono (JSX SSR)
- 存储: Cloudflare KV
- 部署: Wrangler
- 测试: Vitest
本项目基于 MIT License 协议开源。
欢迎提交 Issue 和 Pull Request。如果这个项目对你有帮助,恳请点个 ⭐ Star 支持一下!