2026-10-12 00:11:46 -07:00
2026-10-12 00:11:46 -07:00
2026-10-12 00:08:43 -07:00
2026-10-12 00:11:46 -07:00
2026-08-25 11:35:05 +08:00
2026-10-12 00:11:46 -07:00
2026-10-12 00:08:43 -07:00
2026-08-25 11:35:05 +08:00
2026-08-25 11:35:05 +08:00
2026-08-25 11:35:05 +08:00
2026-08-25 11:35:05 +08:00
2026-08-25 11:35:05 +08:00

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://),也支持手动填写与导出。节点按站点分段展示。

分流规则与策略组——空库首次启动从内置 Surge 模板初始化广告拦截、AI 服务、流媒体、国内直连等配置。模板参考 ClashConnectRules/Surge,已有数据库以管理 API 的实际数据为准,修改模板不会同步更新。规则可排序、改策略、启停、增删;唯一启用的 FINAL 保持末尾,不可停用或删除。策略组可启停、调整成员与显示顺序;显示顺序不决定规则优先级。外部规则集可在界面上预览内容。

按客户端自动适配——同一份数据生成三端配置,客户端不支持的协议在下发时自动屏蔽(例如 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 版并转换后提供,无需外部转换服务。

三端的规则与 DNS 表达范围有所不同。Shadowrocket 部分规则仍保守跳过;Surge 的 AI Host DNS 映射不自动等同于手机端 DNS 设置。能力、已验证范围与待验项见 移动端体检。

当前配置入口

最新节点启用范围、完整组成员、规则服务归属与验证范围集中在 当前生产状态。目前普通代理由 🚀 Proxy 控制,只有它引用 ⚡️ Automatic;🤖 AI 可选美国、新加坡、日本或 🧠 AI Nodes。

📋 All Nodes 与 🧠 AI Nodes 收纳相同的可用节点,按完整名称升序排列,分别保存手动选择。AI Nodes 紧接 AI 显示;在 AI 中选 AI Nodes,再在 AI Nodes 中选择具体节点,即可为 AI 保存独立出口。详见 独立节点选择。

AI 规则位于广告与普通分流之前,保留更早的协议防护与 Unbreak 直连例外。Net.Coffee 的随机 DNS 探测子域已纳入 AI;本机 Chrome+Surge 复测显示美国 Cloudflare「未检测到泄露」,验证边界见 DNS 复测。

快速开始

使用 Node 22 与 pnpm,按已提交的锁文件安装:

CI=true pnpm install --frozen-lockfile
pnpm dev          # server :3000 + web :5173

开发时打开 http://localhost:5173,然后:

  1. 节点 → 批量导入,粘贴分享链接。命名建议带地区词(如 🇺🇸 US LA VMess Direct),地区策略组靠节点名正则匹配
  2. 订阅 → 新建订阅,勾选要开放的节点
  3. 复制对应客户端的 URL 填进客户端

两端都监听 0.0.0.0,手机在同一局域网下用 http://<你的内网IP>:5173 即可访问管理界面,页面上显示的订阅 URL 会自动带上该地址。

部署

当前 LA 生产服务使用 Node 22+systemd,由 nginx 提供 HTTPS;日常应用发布使用 deploy 技能,线上节点/组/规则数据通过 update-db 技能管理。部署代码不自动覆盖已有数据。详细步骤见 生产部署。

另提供 Docker Compose 部署方式:

ADMIN_TOKEN=<随机长字符串> docker compose up -d

SQLite 落在 ./data 卷。订阅 URL 由请求来源自动推断,无需配置基址。

公网部署的两条硬要求:设置 ADMIN_TOKEN(未设置时管理接口只放行 localhost 与局域网);用反向代理提供 HTTPS——订阅 token 就在 URL 里,明文传输会泄露。反代的 access log 建议对 /sub/ 路径脱敏。

校验

pnpm -r typecheck
pnpm test

# 下载成功后再校验真实产物;生产验收使用实际 HTTPS 订阅
umask 077
check_dir="$(mktemp -d /private/tmp/proxy-station-check.XXXXXX)"
curl -fsSL --max-time 45 "http://localhost:3000/sub/<token>/clash" -o "$check_dir/clash.yaml" && \
  test -s "$check_dir/clash.yaml" && mihomo -t -d "$check_dir" -f "$check_dir/clash.yaml"

# 在安装 Surge 的 macOS 上检查实际配置与远程规则快照
python3 scripts/check-surge.py /private/tmp/<profile>.conf --fetch-rulesets

真实配置、URL 与凭据仅保存在私有文件。原生解析成功不等于节点连接或隐私验收;本机 Surge 的组与网站 DNS 复测已有记录,iOS/Android 业务、UDP 与完整 DNS/WebRTC 测试仍需真机完成。完整流程见 订阅变更与验证。

文档

文件 内容
docs/CURRENT-STATE.md 最新生产节点、策略组、规则、客户端下发数量与 Session 接续入口
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 验证流程
docs/AI-NODES-2026-10-04.md 独立 AI Nodes、emoji、名称排序与客户端选择保留
docs/PROXY-AUTOMATIC-2026-10-04.md 普通代理入口与 Automatic 的选择链
docs/AI-RULE-REVIEW-2026-10-04.md AI 精确补充及 Apple/Global/Bing 专用分流调整
docs/AI-PRIORITY-2026-10-04.md AI、协议防护、直连例外与广告规则优先级
docs/NET-COFFEE-DNS-2026-10-04.md 检测域名实现、AI 后缀规则及本机 DNS 复测
docs/MOBILE-CLIENT-AUDIT-2026-10-04.md Shadowrocket/ClashMeta 生成器差异、已部署修复与手机待验项

安全

数据库和节点私有工作区存有真实凭据。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 工具,不加入应用运行包。

Description
Proxy Station
Readme 935 KiB
Languages
TypeScript 48.7%
Python 21.7%
Vue 16.8%
Shell 12%
CSS 0.4%
Other 0.4%