EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
填入节点,DNS、IPv6 与分流按最佳实践配好。适用于 sing-box 1.14,纯浏览器运行,配置不上传。
Translation pending
Developer toolsTypeScript · CSSGitHub @riverscnOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
sing-box 配置生成器:填入节点,DNS、IPv6 与分流按最佳实践配好。A sing-box 1.14+ config generator with battle-tested DNS, IPv6 and routing; runs entirely in your browser.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗填入节点,DNS、IPv6 与分流按最佳实践配好。
在线使用:https://sing-box-confgen.riverleaf.dev
一份 sing-box 配置用着别扭,问题多半不在节点,而在看不见的地方。这个生成器把这些坑逐一实测、给出对策,你只需要填节点,就能得到一份完整的 config.json,导入 SFM、SFI、SFA 或命令行版即可使用。
| 症状 | 原因 | 这里的做法 |
|---|---|---|
| 国内网站被解析到海外,或者被墙的域名打不开 | DNS 没有跟着分流走:国内域名问了海外 DNS,被墙域名拿到污染的地址 | 直连的用本地 DNS,走代理的经代理问远程 DNS;拿不准的域名两边一起问,答出国内 IP 才直连(DNS 策略) |
| 开了代理,部分连接却绕过去或连不上 | 应用优先用 IPv6,而代理服务器没有 IPv6,或者 IPv6 根本不经过 sing-box | 走代理只给 A 记录,连 HTTPS/SVCB 里的 IPv6 提示一起清掉;本机没有 IPv6 时直连也干净地回退到 IPv4(IPv6 策略) |
| 网站频繁要求验证、风控 | 出口 IP 在 IPv4 和 IPv6、不同服务器之间漂移 | 走代理的流量始终从同一台服务器、同一个 IPv4 出去 |
| 换了节点,有些东西还走旧线路 | DNS、规则集下载各有各的出口 | 代理流量、远程 DNS、规则集下载共用一个 proxy 出口,换节点时一起换(代理组) |
| 一开全局,家里的 NAS、公司内网就连不上 | 局域网和内网流量也被送进了代理 | 局域网在任何模式下直连;在外面用内置的 Tailscale 连回 tailnet,内网域名交给 tailnet 的 DNS 拿到内网地址(Tailscale) |
每条策略都在日常使用中实测过,生成的配置在 Linux、macOS、Windows 上用官方 sing-box check 检查过。完整的设计理由见 DESIGN.md。
config.json(节点和 Tailscale),或 Clash(mihomo)的 YAML(节点和代理组);也可以导入机场订阅的内容(Clash YAML、明文或 base64 的分享链接、SIP008)。DNS 和分流按这里的策略重写。config.json:导入 SFM、SFI、SFA,或运行 sing-box run -c config.json。需要 sing-box 1.14 及以上。最后一件事:浏览器的“安全 DNS”(DoH)请保持“自动”或关闭。手动指定 DoH 服务商会绕过 sing-box 的 DNS 分流。
config.json 本身也能再导入回来。curl 命令和打开链接,由你自己取回内容再粘贴或选择文件。订阅地址不会保存,导入是一次性的,节点更新后需要重新导入。网页只提供一套策略和少量开关。网页里没有的改动(例如加一个 SOCKS 入站、让某个 App 不经过 sing-box),可以交给 Claude Code、Codex、Cursor 等 AI 编程助手。本仓库附带一个 skill:sing-box-best-practice,它告诉助手:
proxy 出口、走代理只给 IPv4、直连优先等),常见修改要同时改哪几处;src/generate.ts。用 skills CLI 安装(需要 Node.js):
npx skills add riverscn/singbox-confgen
按提示选择你用的助手。常用选项:
| 选项 | 作用 |
|---|---|
-g | 装到用户目录,所有项目都能用(默认只装到当前项目) |
-a claude-code | 只装给指定的助手,例如 claude-code、codex、cursor |
--skill sing-box-best-practice | 只装这一个 skill |
-y | 跳过确认 |
例如不经询问、全局装给 Claude Code:
npx skills add riverscn/singbox-confgen --skill sing-box-best-practice -g -a claude-code -y
之后用 npx skills update 更新。装好后,把下载的 config.json 交给助手,直接说要什么,例如“加一个 SOCKS 入站,让局域网里的其他设备也能用”,或者“这个网站在 Non-CN 模式下为什么走了代理?”。能在网页里做的改动,助手会建议你回网页改,因为下次从网页下载会覆盖手改的内容。
| 卡片 | 内容 |
|---|---|
| 节点 | 用 JSON 编写(可写注释),从协议模板开始:Hysteria2、VLESS(Vision / Reality)、VMess、Trojan、Shadowsocks、ShadowTLS、TUIC、AnyTLS、Hysteria、NaiveProxy、Snell、SOCKS、HTTP、SSH、Tor,以及 WireGuard、OpenConnect、OpenVPN 端点 |
| 代理组 | 按地区、用途给节点分组:手动选择或自动测速,可嵌套;成员可按名称筛选后一次选中;proxy 的默认选择;节点多时可不在 proxy 里逐个列出 |
| 分流 | 默认模式;直连域名;代理域名和 IP(适合被墙但不在 gfwlist 里的网站);规则(域名、IP 或规则集走 proxy、auto、direct,或指定节点、代理组);DNS 分流(指定域名用本地 DNS、代理 DNS、某个 tailnet 的 DNS 或自定义的 DNS 服务器解析,例如公司域名问 tailnet 的全局 DNS,或经 WireGuard、OpenConnect 问内网 DNS) |
| Tailscale | 任意多个 tailnet:端点用 JSON 编写(可写注释);MagicDNS(含后台配置的 split DNS)、tailnet 默认 DNS、额外路由、作为代理出口 |
| 高级 | 目标平台;代理 DNS 服务器(Google / Cloudflare / Quad9,DoT 或 DoH,或用 JSON 自定义任意 DNS 服务器);ECS;Clash API;Steam、禁止 iCloud 使用 QUIC |
npm install
npm run dev # 本地开发
npm test # 规则推演和蓝本比对
npm run build # 输出到 dist/
# 用真实的 sing-box 检查每个节点模板和功能组合生成的配置
# (下载脚本会用 GitHub 发布页公布的 SHA-256 校验二进制)
SING_BOX=$(python3 scripts/fetch-sing-box.py 1.14.3 /tmp/sing-box) npm run check:singbox
推送到 GitHub 后,CI(.github/workflows/ci.yml)会跑测试和构建,并在 Linux、macOS、Windows 上分别执行上面的检查。
站点是一个只含静态资源的 Cloudflare Worker(wrangler.jsonc,资源目录 dist/),由 Cloudflare 的 Git 集成(Workers Builds)构建和部署,GitHub 里不需要任何 Cloudflare 凭据:
main:每次推送(通常是合并 PR)都部署到正式地址。noindex),需要时可用 Cloudflare Access 保护。v1.2.3,需与 package.json 的 version 一致):GitHub Actions 跑完测试和三平台 sing-box check 后创建 GitHub Release,附上 dist/ 的压缩包供自部署。tag 不影响部署。日常改动在分支上做,看过 Preview 再合并到 main。
在 Cloudflare 里设置一次(Workers & Pages → Create → Import a repository,选这个仓库):
| 设置 | 值 |
|---|---|
| Git branch(正式分支) | main |
| Build command | npm run build |
| Deploy command | npx wrangler deploy(默认) |
| Preview command | npx wrangler preview(默认) |
| Root directory | / |
依赖会自动安装,Node 版本取自 .node-version。
在 main 上发布一个版本号(GitHub Release):
npm version 0.2.0 -m "Release %s"
git push --follow-tags
dist/_headers 来自 public/_headers,给所有响应加上 frame-ancestors 'none'、nosniff 等安全响应头;页面本身的 CSP 在构建时写进 index.html。构建时还会把首屏预渲染进 index.html(src/prerender.tsx),不执行 JavaScript 的搜索引擎也能读到页面内容;robots.txt、sitemap.xml 和分享卡片图 og.png 在 public/ 里。本地可以用 npx wrangler dev 在 Workers 运行时里预览构建结果。
npm run build 后,把 dist/ 放到任意静态托管(Nginx、Caddy、Cloudflare Pages、GitHub Pages 等)。资源用相对路径引用,挂在子路径下也能用。index.html 里的 canonical 和 og:url 指向官方站点;自部署且希望被搜索引擎收录时,改成你自己的地址。
通过 http 访问时,浏览器可能禁用剪贴板 API,页面会自动退回旧的复制方式。
src/generate.ts:配置生成器和校验。src/types.ts:设置的数据模型;src/defaults.ts:默认值;src/templates.ts:节点协议模板。src/legacy.ts:把旧版(表单)保存的服务器迁移为 JSON 节点。src/importer.ts:从现有 sing-box 配置导入节点和 Tailscale。src/clash.ts:从 Clash(mihomo)配置导入节点和代理组。src/subscription.ts:识别订阅内容(分享链接、base64、SIP008),把分享链接读成 Clash 的代理字段,再交给 src/clash.ts 转换;解析规则参照 mihomo 和 Sub-Store。src/import-dialog.tsx:导入对话框(文件、粘贴、订阅地址的取回方式)。src/App.tsx:界面;src/storage.ts:本地保存和导入时的兼容处理。test/generate.test.ts:
test/fixtures/tiger-baseline.json,已匿名化)的非 DNS 部分;test/dnswalk.ts 按“模式 × 查询类型 × 域名类别”推演会问哪个服务器、最终怎么回答。test/normalize.ts:抹平 SFM 重新保存配置时的写法差异(单元素数组、默认值、时长格式)。test/samples.ts:覆盖全部节点模板和功能、平台组合的示例配置,供 schema 测试和 sing-box check 共用。test/schema.test.ts:用 sing-box 1.14.3 官方 JSON schema(test/fixtures/sing-box-1.14.3.schema.json)校验所有示例配置。test/storage.test.ts:多套配置的存储和旧数据迁移。test/subscription.test.ts:各协议分享链接、SIP008 和 base64 订阅的导入,以及生成的配置符合 schema。skills/sing-box-best-practice/:给 AI 编程助手用的 skill,说明如何修改生成的配置。scripts/:下载并校验官方 sing-box(fetch-sing-box.py),对示例配置跑 sing-box check(singbox-check.ts)。