迁入通用节点部署工具、离线交付页生成器和共用技能,隔离真实配置与交付产物。统一 Codex 与 Claude Code 开发约定,补充节点迁移与运维文档。 完善 FINAL、策略组引用、输入校验、Surge 字段编码与 AI DNS 例外保护,增加隔离测试和订阅验证工具。 验证:全量类型检查、44 项单测、前端构建、脚本语法、技能入口与凭据隔离检查均通过。
5.9 KiB
Proxy Station
统一维护边缘 VPS 节点部署管理与自托管的代理节点、分流规则管理平台。在 Web 界面里管理多协议节点与策略组、规则,向 macOS、iOS、Android 三端下发托管订阅——客户端填一次 URL,之后配置自动更新。
节点 ──┐
策略组 ──┼──→ ProfileIR ──┬──→ Surge .conf
规则 ──┘ ├──→ ShadowRocket 节点订阅 + 规则配置
└──→ ClashMeta .yaml
能做什么
边缘节点部署管理——节点部署脚本、版本兼容参考、交付模板与离线汇总页生成器已合入本仓库,使用项目技能 edge-node-multi-protocol 维护 nginx、3x-ui/Xray、WARP 与可选 sing-box 线路。真实配置与交付记录位于 Git 忽略的 edge-nodes/private/;入口见 边缘节点工作区。
多协议节点管理——VMess、Trojan、Shadowsocks、Hysteria2,支持粘贴分享链接批量导入(vmess://、trojan://、ss:// 的 SIP002 与 Xray 两种写法、hysteria2://),也支持手动填写与导出。节点按站点分段展示。
分流规则与策略组——首次启动自动从 ClashConnectRules/Surge 模板导入(26 个策略组 + 88 条规则,含广告拦截、AI 服务、流媒体、国内直连等)。规则可排序、改策略、启停、增删;策略组可启停并调整顺序,顺序即客户端里的排列顺序。外部规则集可在界面上实时预览内容。
按客户端自动适配——同一份数据生成三端配置,客户端不支持的协议在下发时自动屏蔽(例如 Surge 的 ss 类型没有 WebSocket 传输,SS over WS 节点会被排除),字段差异自动映射(cipher 命名、VMess AEAD、Hysteria2 混淆参数等)。
按订阅分配节点——每个订阅可以只开放部分节点,用于把不同线路分给不同设备或他人。
客户端支持
| 客户端 | 节点 | 策略组 | 规则 | 导入方式 |
|---|---|---|---|---|
| Surge (macOS) | ✅ | ✅ | ✅ | 一个 URL,托管配置自动更新(#!MANAGED-CONFIG) |
| ClashMeta (Android) | ✅ | ✅ | ✅ | 一个 URL,RULE-SET 自动映射为 rule-providers |
| ShadowRocket (iOS) | ✅ | ✅ | ✅ | 两个 URL:节点订阅 + 规则配置,见下 |
ShadowRocket 的原生订阅格式只承载节点,因此拆成两步:先在「订阅」里添加节点链接(名称随意),再在「配置」里添加规则链接。策略组通过 policy-regex-filter 从 App 内全部节点里筛选。订阅页的 ⓘ 图标里有同样的说明。
ClashMeta 侧无 Clash 版本的规则集,由本服务实时拉取 Surge 版并转换后提供,无需外部转换服务。
快速开始
pnpm install
pnpm dev # server :3000 + web :5173
打开 http://localhost:3000 (或开发时的 :5173),然后:
- 节点 → 批量导入,粘贴分享链接。命名建议带地区词(如
🇺🇸 US LA VMess Direct),地区策略组靠节点名正则匹配 - 订阅 → 新建订阅,勾选要开放的节点
- 复制对应客户端的 URL 填进客户端
两端都监听 0.0.0.0,手机在同一局域网下用 http://<你的内网IP>:5173 即可访问管理界面,页面上显示的订阅 URL 会自动带上该地址。
部署
ADMIN_TOKEN=<随机长字符串> docker compose up -d
SQLite 落在 ./data 卷。订阅 URL 由请求来源自动推断,无需配置基址。
公网部署的两条硬要求:设置 ADMIN_TOKEN(未设置时管理接口只放行 localhost 与局域网);用反向代理提供 HTTPS——订阅 token 就在 URL 里,明文传输会泄露。反代的 access log 建议对 /sub/ 路径脱敏。
校验
# Clash 产物(最有价值的一条端到端验证)
curl -s "http://localhost:3000/sub/<token>/clash" > /tmp/c.yaml && mihomo -t -f /tmp/c.yaml
pnpm -r typecheck
pnpm test
Surge 与 ShadowRocket 需真机导入验收。
文档
| 文件 | 内容 |
|---|---|
edge-nodes/README.md |
节点部署工作区、当前舰队、私有资料与工程迁移记录 |
.claude/skills/edge-node-multi-protocol/SKILL.md |
节点部署、重建、维护与交付的共用技能 |
docs/SEEDING.md |
从本仓库私有交付文档导入真实节点、命名建议 |
docs/ADDING-REGIONS.md |
新增地区(香港、日本等)时的节点命名与策略组配套步骤 |
AGENTS.md |
Codex/Claude Code 共用的架构要点与开发约定 |
CLAUDE.md |
导入 AGENTS.md 的 Claude Code 兼容入口 |
docs/AI-COLLABORATION.md |
双工具加载方式、共用技能与协作维护方法 |
docs/DEPLOY.md |
LA 生产环境部署与验证 |
docs/SURGE-PRIVACY.md |
Surge AI 域名 DNS 分流与验证边界 |
docs/SURGE-AUDIT-2026-10-03.md |
macOS Surge 生产订阅体检、复现结果与修复建议 |
docs/SURGE-FIX-2026-10-03.md |
体检问题修复、生产备份与实际订阅验证结果 |
docs/SURGE-CHANGES.md |
节点、组、规则与 DNS 变更的 Surge 官方 CLI 验证流程 |
安全
数据库和节点私有工作区存有真实凭据。data/、*.db、.env、edge-nodes/private/、config.env 及其备份、node-links/ 已在 .gitignore 中,绝不入 git;可入库的示例、测试、模板一律使用占位凭据。节点私有资料通过受控备份恢复,Docker 构建上下文排除节点工具与私有资料。订阅 token 可随时在「订阅」页禁用或删除。
技术栈
应用为 pnpm monorepo:server/(Hono + better-sqlite3 + Drizzle)+ web/(Vue 3 + Vite + Naive UI + Pinia)+ shared/(zod schema 与 DTO,前后端共用)。生产模式由 server 静态托管前端产物,单端口运行。节点部署管理使用独立 Bash/Python 工具,不加入应用运行包。