MagicPanel 使用文档
这份文档讲清楚每个页面在做什么、每个按钮点下去会发生什么、遇到问题先看哪里。
目录
先理清几个概念
第一次用先把这几个词对上,后面的页面就好理解了。
| 概念 | 一句话 | 在哪维护 |
|---|---|---|
| 节点来源 | 一个机场订阅,或一个手写的本地节点 | 节点来源 |
| 规则来源 | 一份域名/IP 清单(远程抓取或内联维护) | 规则来源 |
| 策略组 | 一组节点的聚合方式(手动选、自动测速、故障转移、负载均衡、链式) | 策略组 |
| 分流策略 | 什么流量走哪个策略组 | 分流策略 |
| 引擎平台 | 引擎(Stash / Mihomo)+ 平台(iOS / macOS / Windows……),一类客户端 | 引擎平台 |
| 拓展模块 | 一段可复用的 YAML 片段(磁贴、DNS 策略、TUN、脚本改写) | 拓展模块 |
| 基础配置 | 产物里的顶层键(端口、模式、DNS、TUN……) | 基础配置 |
| 设备 | 一台装客户端的机器,一个固定订阅地址 | 设备管理 |
产物是编译出来的完整 YAML,也就是客户端真正下载到的那份配置。构建把当前所有设置固化成一份产物;发布决定哪份产物对外生效。改完设置不发布,客户端拿到的还是老配置。
引擎平台 = 引擎 + 平台,一对只能有一个。 想区分不同的人或设备,不要复制引擎平台:策略组和规则可以限定到具体设备,客户端参数用「设备独立配置」。
门户页:订阅中心
地址是站点根路径 /,比如 https://magichub.top:8443/。
- 输 4 位或 6 位 PIN 进入(保存时选一种),页面会列出所有设备的订阅地址,点「复制」拿到完整链接。
- 维护者已经登录后台时,免 PIN 直接看。
- PIN 跟维护者账号绑定,谁设的谁能在后台撤销;换设备时让对方重新发一个就行。
- 页面还提供导入指引:Stash、Clash for Android 等客户端怎么填订阅地址、怎么更新,按客户端分开写清楚了。
- 门户只读,不改任何配置。
PIN 不是密码学意义上的强认证,它是「防止订阅地址被随手翻到」的闸门。真正的访问控制在后台账号。
页面结构:
| 区块 | 说明 |
|---|---|
| 搜索框 | 搜订阅、规则、客户端;点「搜索」或回车才生效,输入时不会即时过滤 |
| 核心配置 | 设备订阅卡片。标题右侧一排平台标签,点一下只看该平台、再点取消,筛选对 Stash 与 Mihomo 两个引擎同时生效;标签固定列出全部支持的平台,当前没有设备的平台会压暗 |
| 客户端资源 | Stash / Mihomo / Clash Verge Rev 等客户端的下载入口 |
| 分流策略 | 按目标策略组分组的个人规则,点组头展开,展开后点规则行即复制 |
| 规则来源 | 下发给客户端的规则集清单,可按行为或按来源仓库分组;每条有「复制地址」与「预览」 |
| 拓展模块 | 按类别分组的配置片段(脚本、面板段等) |
三个折叠区块(分流策略 / 规则来源 / 拓展模块)默认都是折叠的,组头一行写清楚名称与条数,点组头展开。搜索时命中的分组会自动展开,清空搜索后回到折叠状态。
「规则来源」的「预览」会拉出这条规则的完整信息:行为、格式、条目数、大小、抓取状态与时间、面板抓取间隔、客户端更新间隔、上游地址(点一下复制),以及规则内容的前 120 行。二进制格式(MRS)没有可读文本,只给大小与指纹。
登录与账号
后台地址 /admin。
- 第一次访问会进入初始化页:创建第一位维护者(用户名、密码、显示名)。只有一个人能创建,之后这个入口就关了。
- 同一个 IP 登录失败连着 5 次,会被锁 15 分钟。
- 会话默认保留 7 天(可在「设置」改)。
- 支持多维护者:每人一个账号,共享同一份策略数据。「设置 → 维护者账号」里可以添加、删除其他维护者。
系统状态
打开后台第一屏,回答四个问题:现在跑的是哪一版、稳不稳、节点还在不在、测速是不是真的直连。
| 卡片 | 看什么 |
|---|---|
| 当前版本 | 当前生产版本、当前测试版本:构建号、发布时间、策略摘要、发布人和备注 |
| 运行状态 | 面板是否正常、数据库剩余空间、最近一次备份时间、测速核心版本 |
| 测速链路 | 面板当前的直连出口 IP 与归属地,检测是不是真的绕过了代理;「重新检测」可刷新 |
| 节点来源 | 每个来源的节点数、最近抓取时间 |
| 节点可用率 | 各来源最近一次测速里可用节点占多少 |
| 设备最近下载 | 每台设备最近一次拉取订阅的时间与 IP |
| 最近操作 | 最近几条审计记录 |
测速链路这张卡值得看一眼:面板自己会检测出站 IP,如果 NAS 上有全局代理而面板没排除掉,测速结果会不准(节点看着好,实际在绕代理)。显示「测速走本机直连」才是对的——这里的「本机」指面板所在的 NAS,不是你的开发机。
节点来源
两个区块:节点来源(机场订阅)和本地节点(手写节点)。
节点来源
| 操作 | 说明 |
|---|---|
| 添加订阅 | 填名称、订阅 URL、抓取间隔、客户端更新间隔、测速间隔、User-Agent、节点过滤正则;要走代理再填代理地址 |
| 上传订阅文件 | 没有在线地址的订阅:把客户端导出的订阅文件传上来,仍是订阅来源(照常进分组、测速与下发),只是没有在线地址,内容更新靠重新上传 |
| 从 curl 命令导入 | 粘一条 curl 命令,自动填好订阅地址与请求头(Host 由地址决定,忽略);导入后仍可逐项修改,保存才生效 |
| 一键抓取 / 一键测速 | 立刻跑一轮所有启用的来源 |
| 抓取 / 测速(单行) | 只处理这一条 |
| 已启用 / 已停用 | 按钮上直接写当前状态,点一下就切换(只改启用状态,别的设置不动) |
| 复制 URL | 订阅地址加密存储,列表里不铺开,按需复制 |
| 编辑 | 改名称、URL、间隔、过滤条件、下发方式等 |
| 删除 | 有策略组引用时会被拦下,列出引用来源 |
几个容易踩的点:
- 抓取间隔单位是秒,最小 600。要停用自动抓取,勾掉「自动抓取」——之后只用本地快照。
- 测速间隔填 0 等于关掉自动测速,随时可以手动测。
- 过滤正则决定哪些节点会被分发,默认 User-Agent 是
Stash。 - 自定义请求头:机场要带特定
Cookie或User-Agent才给内容时填这里。值是访问凭据, 加密存储、列表不显示;编辑时值不回显,留空即保持原值,删掉那一行才是清掉。 - 机场的加密订阅解不开:有些机场的订阅内容本身是密文(密钥不在订阅地址里),面板抓得到 但解析不出节点,提示会是「这类机场的加密订阅面板无法解析」。这时在客户端把订阅导出成 Clash YAML,用「上传订阅文件」传上来即可。
- 只分发可用节点打开后,抓完会自动补测;自动构建发布要求来源有可用测速结果才放行。
- 下发方式有两种:订阅(节点写进
proxy-providers,客户端按间隔自己下载更新)与 内联(节点直接写进配置,能在 GLOBAL 组里直接选中)。内联的代价是机场换节点不会 自动生效,要重新拉一次订阅。 - 抓取走代理:服务端出不去订阅站时才用,填 Mac mini 的内网地址(默认
http://10.0.1.8:7890)。 面板跑在 NAS 上,别填127.0.0.1——那会连到 NAS 自己,抓取直接失败。 - 快照是留存的:抓取失败时用上一次成功的快照继续服务。
列表上方有搜索与筛选:搜索来源名称,可按启用状态、下发方式(订阅 / 内联)、 抓取方式(自动抓取 / 只用本地快照)、抓取结果(成功 / 失败 / 从未抓取)筛选。 筛选条右侧写清是”共 N 个来源”还是”筛选出 N 个,共 M 个”,点「清空筛选」恢复全部。
本地节点
本地节点的「已启用 / 已停用」按钮同样在操作列里,点一下就切换。
自己搭的节点、家宽、落地都放这里。
- 点「添加节点」填:名称、类型(本地 / 自建 / 家宽 / 机房 / 专线 / 中转 / 落地)、协议、服务器、端口、参数。
- 参数表单是动态的:协议不同要填的字段不一样(hysteria2 要
auth和上下行,trojan 要password和sni……),以服务端 schema 为准。 - 启用后以
名称 (类型)写进产物,比如🇭🇰 香港机房 01 (机房)。 - 节点默认不进入任何策略组,要自己去「策略组」里勾选。
- 凭据加密落盘,列表里不显示明文。
- 区块右上角的「一键测速」把这里录入的节点逐个拨测一遍(顺序执行,不会同时起多个核心), 跑完把延迟与结果写回每个节点,最后汇总”几个可用、几个不可用”。单个节点的「测速」按钮同样可用。
规则来源
规则集是分流规则引用的清单,按来源分三种:远程(抓 URL)、内联(页面里直接写)、
仓库(由「自主维护」页托管,仓库里的 rule/*.yaml 自动进来)。
| 操作 | 说明 |
|---|---|
| 添加规则来源 | 名称、行为类型(domain / ipcidr / classical)、格式、间隔 |
| 内容 | 看这个规则集抓到了什么 |
| 抓取 | 立刻更新这一份 |
| 复制 URL | 远程规则集的地址;仓库来源复制的是仓库内路径 |
| 被引用 | 哪些分流规则用了它,点一下直接跳到那条规则 |
| 已启用 / 已停用 | 按钮上直接写当前状态,点一下就切换(只改启用状态,别的设置不动) |
| 编辑 / 删除 | 有分流规则引用时删除会被拦下 |
抓取失败不影响手上的数据:抓取失败时这一份会标成「抓取失败」,并提示「仍用上次内容」—— 上一次抓到的内容原样保留,构建和发布照旧用它,客户端不会突然少规则。定时抓取失败会自动重试, 最多 3 次都失败才记为失败。
抓取走代理:服务端直连抓不到这个规则集时才用,填 Mac mini 的内网地址
(默认 http://10.0.1.8:7890)。面板跑在 NAS 上,别填 127.0.0.1——那会连到 NAS 自己。
内联规则集直接在本页编辑内容,格式跟远程的一致。因为内容由本机维护,没有”抓取”这回事, 所以内联来源不设抓取间隔,只保留客户端更新间隔(客户端多久重新拉一次这份规则集)。
列表上方有搜索与筛选:搜索名称或 URL,可按类型(远程 URL / 内联内容 / 仓库托管)、行为 (域名 / IP 段 / 经典规则)、启用状态、抓取结果、被引用情况筛选。其中”抓取结果”只对远程来源 有意义——内联来源没有抓取这回事,不会出现在这个筛选里。
仓库托管的来源内容只读:它来自「自主维护」页的仓库,改动要去那里做; 这一类来源显示的状态是「同步状态」,不是抓取状态。
策略组
策略组决定流量落到哪些节点上。
| 类型 | 行为 |
|---|---|
| select | 手动选,默认第一个 |
| url-test | 自动测速选最快的 |
| fallback | 按顺序挑第一个可用的 |
| load-balance | 多节点分担,分配策略可选一致性哈希 / 轮询 / 粘性会话 |
| relay | 链式转发,把一个组接到另一个组前面 |
组里可以放:
- 节点来源(勾选后自动聚合该来源的节点,机场更新了组也跟着变;多选里选 「包含所有来源(含以后新增的)」表示所有来源,以后新增的来源自动进来,不用回来改)
- 本地节点(手写节点)
- 其他策略组(分组套分组)
拖动左侧手柄可以排序,上下箭头是键盘和触屏的替代。空组会在产物里留下占位,避免客户端把空组改写成别的。
列表上方有搜索与筛选:搜索组名,可按类型、可见性(客户端可见 / 客户端隐藏)、适用范围 (适用于所有平台与设备 / 限定了引擎平台 / 限定了设备)、成员构成(含节点来源 / 含本地节点 / 只靠指定成员)筛选。
“含节点来源”指真的指定了某个来源;勾的是「包含所有来源(含以后新增的)」不算,那等于没指定。
筛选状态下不能拖动排序:筛出来的组在列表里并不相邻,拖一下就会把整体顺序打乱;清空筛选后再拖。
分流策略
规则从上往下匹配,命中即停。
- 类型可选域名、IP、进程、规则集等,一共 13 种;
MATCH是兜底,永远保留。 - 平台与设备同时生效(取交集):平台或设备有一个不匹配,这条规则就不下发。
- 勾「包含所有…」= 全部;选具体项 = 仅该项,两者互斥。
- 适用引擎平台:只在选中的引擎平台里出现;多选里选「包含所有引擎平台」表示所有平台。
- 适用设备:只给选中的设备用——这些设备会拿到自己的产物,同平台其他设备不受影响。
no-resolve修饰符适合 IP 字面量规则,不触发域名解析。- 规则指向的策略组不适用于同一个平台时,这条规则会被自动剔除,并在构建时给出提示。
顺序就是优先级:从上往下第一条命中即生效,所以排法是「越具体越靠前、
同一目标组的规则聚成一块」。自己维护的集合(文件名带 magic- 前缀)排在最前面,
其后 119 条规则分十一块:本地与保留地址直连 →
网络层直连 → 广告 → 设备专属直连 → Steam 香港 → 小而明确的直连集合 →
服务分组 → 路由回家 → 通用代理兜底 → 大而泛的直连集合 → MATCH。
两条容易踩的:
- 大而泛的直连集合(
cn/cn-ip)排在最后,紧挨MATCH之前。 它们条目极多(cn有 11 万条),排在前面会把所有国内域名先拦去直连,任何更具体的 规则都轮不到——被墙的域名也会跟着一起直连然后超时。 - 强制代理(
proxy-bm7/proxy-domain/proxy)排在「通用代理兜底」块末尾,必须早于 上面那三个大直连集合,否则「强制代理」会被直连集合抢掉。
「服务分组」块内部又分三层:地区锁服务(Pixiv / DMM / Hulu / BBC 这类按
国家或地区放内容、换 IP 就打不开的)→ 主题细分(Discord / Slack / Vercel /
Amazon / 加密货币这类账号风控重、需要固定出口的)→ 宽泛合集(media /
disney / social / games 这些上游大集合)。地区锁服务必须在宽泛合集之前,
否则 media 里那 10 条 BBC 域名会先被国际影音组接走,英国版权区就播不了。
本地进程直连已经收成一个集合:qbittorrent / Transmission / deluge /
syncthing / Tailscale / UURemote 这 15 个进程名在 process 集合里
(自维护层),面板里只有一条 RULE-SET,process,DIRECT。要加新的下载器,
改那个集合文件即可,不用在界面上建规则。
Stash 专属修饰符(只有 Stash 产物会带上,Mihomo 不受影响):
| 开关 | 作用 | 注意 |
|---|---|---|
| 不记入连接列表 | 命中的连接不显示在客户端的连接页,流量统计照常 | 适合广告、心跳、探测这类高频请求;兜底规则不能开,否则客户端一条连接都不记 |
| 提前拒绝 | 连接还没建立就拒掉(DNS 阶段就空应答),iOS 上最省 CPU 与内存 | 目标必须直接是 REJECT / REJECT-DROP,用策略组会让客户端加载失败;只对 Stash iOS/tvOS 3.7+、macOS 4.4+ 生效,版本太旧的客户端可能加载失败 |
这两个开关在「编辑规则」对话框里勾,也可以在表格里选中多条后批量设置。
广告过滤是双轨的:Stash 的 iOS / tvOS / macOS 产物里,广告规则的目标直接是 REJECT
并带「提前拒绝」;Stash-Android / Stash-Windows 和 Mihomo 产物里,广告规则指向
「🛑 广告过滤」策略组,可以临时切「默认代理」或「直连」放行广告。
两边都带「不记入连接列表」,广告请求不会把客户端的连接页刷满。
顺序很重要:把具体的放前面,宽泛的放后面。规则集(RULE-SET)通常放在域名规则之后、兜底之前。
规则类型别选错:面板里能选的一共 13 种(DOMAIN-SUFFIX / DOMAIN / DOMAIN-KEYWORD / DOMAIN-REGEX / IP-CIDR / IP-CIDR6 / GEOIP / GEOSITE / RULE-SET / SRC-IP-CIDR / DST-PORT / PROCESS-NAME / MATCH)。 构建时还会按引擎的官方白名单再查一遍——Stash 与 Mihomo 支持的类型不完全相同,超出白名单客户端会加载失败。
找规则
规则条数多,页面上方有搜索与筛选:
| 控件 | 作用 |
|---|---|
| 搜索框 | 按匹配值、目标、备注或类型查找,输入即筛(停一下自动生效) |
| 全部类型 | 只看某一种规则类型(域名、IP、规则集……) |
| 全部目标 | 只看指向某个策略组或 DIRECT / REJECT 的规则 |
| 全部状态 | 只看启用或停用的规则 |
| 全部适用范围 | 只看”适用于所有平台与设备”、”限定了引擎平台”或”限定了设备”的规则 |
筛选条右侧会写清楚当前是”共 N 条”还是”筛选出 N 条,共 M 条”。 点「清空筛选」恢复全部。
筛选状态下不能拖动排序:筛出来的规则在列表里并不相邻,拖一下就会把整体顺序打乱;清空筛选后再拖。
基础配置
页面有两个 tab:引擎平台 与 产物配置。tab 记在网址里
(?tab=targets / ?tab=artifact),可以直接把某个 tab 的链接发给别人。
tab:引擎平台
一类客户端对应一个引擎平台,比如 Stash-macOS、Mihomo-Windows。
- 名称只能有字母、数字、下划线和短横线(会拼进文件名)。
- 同一「引擎 + 平台」只能有一个,重复会被拒绝并提示。
- 平台扩展:这一类客户端专属的 YAML 片段,最后应用、优先级最高。适合放只有某类客户端才认的键。
- 删除时如果还有设备在用,必须先指定迁移目标,设备会一起搬过去。
可选平台:iOS / macOS / tvOS / Windows / Android / Linux(两个引擎通用,具体能不能用取决于客户端自身)。
tab:产物配置
产物里的顶层键在这里改,分三层,左侧树状结构选作用域:
引擎默认配置 ← 引擎内置的能力基线(可改)
Stash 默认
Mihomo 默认
引擎平台配置 ← 按「引擎 + 平台」
Stash-iOS
Mihomo-Windows
设备独立配置 ← 按设备
Astral-iPhone-Stash
继承链显示在标题下方,一眼看清当前这层叠在哪几层之上:
继承链:引擎默认配置 · Stash 默认 → 引擎平台配置 · Stash-iOS → 设备独立配置 · Astral-iPhone-Stash
右栏上半部分是生效配置(键 / 值 / 来源),点值就能改;再往下是按分组排开的参数表单。
本层改动用颜色标在表里:蓝色 = 本层新增(上层没有这个键),橙色 = 本层覆盖(上层有,但值被改了)。 改过的行底色也一并染上,一眼扫过去就知道这层动了什么。改回上层,点行尾的「恢复继承」。
| 操作 | 说明 |
|---|---|
| 新增参数 | 挑一个键名填值,只对当前层生效 |
| 源码编辑 | 直接改这一层的 YAML,保存前做键级校验 |
| 清除改动 | 清掉本层对上层的覆盖,回到继承 |
| 恢复默认 | 引擎默认配置专用:回到程序内置内容 |
| 预览产物 | 按当前生效值渲染一份产物,不产生构建 |
| 保存 | 只保存本层,客户端要等新版本发布才拿到 |
| 保存并构建发布 | 保存 + 构建 + 发布,一步到位 |
三层的分工
- 引擎默认配置:这一类引擎的通用基线,改一次所有平台都受益。
- 引擎平台配置:只针对「引擎 + 平台」,比如只有桌面端才开某个监听。
- 设备独立配置:只针对一台设备,比如某台机器要连家里的 NAS、某台要开 MTProto。
列表的合并语义
- 引擎默认配置、引擎平台配置:这一层是完整配置,列表整体替换。
- 设备独立配置:这一层是个性化,只记新增项,下发时追加——所以设备独立配置里加一条 DNS 过滤不会把上层的整份列表冲掉。
几个内置功能
- 个人直连域名(
_direct_domains):生成置顶的DOMAIN-SUFFIX,域名,DIRECT规则,保证先生效。 - Fake-IP 过滤(
_fake_ip_filter):写进dns.fake-ip-filter。 - MTProto 代理(Stash 专属):在「预设」里选「MTProto 代理(Telegram)」,套用时自动生成 32 位十六进制密钥。放在设备独立配置里,哪台设备要用就加一份。密钥在 Telegram 客户端里要连同
dd前缀一起填。Mihomo 内核没有这个能力,不要给 Mihomo 设备加。 - Stash 的 Google 中国站重定向:引擎默认配置里带了 MitM 与
url-rewrite,把google.cn导到google.com。HTTPS 重写需要设备信任 Stash 的 CA 证书(Stash 首页 → MitM → CA 证书 → 安装并信任),没信任时这些域名会报证书错误。
结构化内容不能在这里改
节点、策略组、规则、规则集、代理集合是结构化内容,只能在各自页面维护。任何配置层写这几个键都会被拒绝——这是硬校验,不是提示。
拓展模块
可复用的 YAML 片段,启用后与产物深度合并(字典递归、列表追加、标量覆盖)。
- 「预设」里有 17 个现成片段:Stash 的磁贴、HTTP 引擎、脚本改写、请求头去跟踪;Mihomo 的 TUN、嗅探、Geo 数据、DNS 策略、泄漏防护等。
- 也可以自己写片段,或用「源码编辑」改。
- 片段要标明适用引擎(Stash / Mihomo / 全部)。
- 片段同样不允许写结构化内容。
预设和引擎默认配置有重叠时,引擎默认配置已经带的能力可以关掉对应模块,产物不变。
设备管理
每台设备一行。
- 文件名决定下载到客户端的配置文件名(
Astral-iPhone-Stash.yaml),设备名只用于后台和门户展示——两者分开,是为了改显示名不影响客户端。 - 订阅地址是固定的,带令牌;点「复制地址」才显示完整链接。
- 订阅环境决定这台设备拿生产版还是测试版。
- 轮换令牌:旧地址立即失效,客户端换成新地址即可;令牌泄露时用。
- 删除设备会一并清掉它的订阅地址和设备独立配置。
新增设备前先在「引擎平台」里准备好对应的平台。
构建发布
页面有两个 tab:手动构建发布 与 自动运行配置(?tab=builds / ?tab=auto)。
标题行右侧是页面级的 「立即发布」 与 「创建构建」,两个 tab 都能点到。
tab:手动构建发布
- 创建构建(标题行):把当前所有设置编译成产物快照,逐目标校验。Mihomo 目标在测速核心已安装时还会跑一次
mihomo -t。它只建快照、不发布,发布在下面的表格里操作。 - 顶部显示当前生产版本和当前测试版本:构建号、发布时间、策略摘要、发布人、备注。
- 列表每行:构建号、发布状态、校验结果、创建时间、创建人、策略摘要、备注。
- 详情抽屉列出每个产物(平台产物 + 设备专属产物)的校验状态、大小、摘要和警告;可以预览产物、与上一构建对比。
- 发布测试:只发到测试环境,生产版本不变。
- 一键发布:直接上线生产。内部是同一事务里「先置测试、再置生产」,发布历史只记一条;发布后测试通道空置(构建状态就是生产中)。
- 回滚至生产:把某个旧构建重新推上生产。
- 下线:把不再用的版本撤下。生产版本受保护,只能被新版本替换。
- 只有从未发布过的构建可以删除。
三个动作别搞混:标题行的「立即发布」跑一整轮自动任务(抓取 → 测速 → 创建新构建 → 发布);标题行的「创建构建」只建快照不发布;列表里的「一键发布」发布已有的这个构建。
改完设置要生效,顺序是:改设置 → 创建构建 → 发布。 「基础配置」里的「保存并构建发布」把前两步合在一起。
tab:自动运行配置
服务端定时任务,按开关工作。
- 抓取与测速:自动抓取节点来源、规则来源,自动测速。
- 自动构建与发布:策略变化时自动构建,校验通过后发布到指定环境;构建检查间隔可调。
- 立即发布(页面标题行):忽略到期时间,强制跑一轮抓取、测速和构建检查。
- 页面下方有最近运行记录和最近自动构建发布记录(各 20 条)。
自动构建发布的前提是策略没变——策略没动就不会重复构建产物。改完配置想让客户端立刻拿到,要么手动构建发布,要么等下一次检查。
发布到哪个环境由「自动构建发布环境」设置决定,默认就是生产。要保持生产始终是最新版本,保持默认即可——测试环境是给人手验证用的,不发也不影响。
发布前有两道闸门,任一不过这一轮就不发布,页面上的运行记录会写明原因:
- 来源测速结果就绪——开了测速的来源都要有可用结果,否则不发布(避免把坏节点发出去)。
- Mihomo 目标的核心校验——测速核心已安装时,每个 Mihomo 产物都要过了
mihomo -t才放行;核心没装则跳过这一关(Mihomo 产物只做了静态校验)。
自主维护
管理面板依赖的文件库(默认是 astralwaveorg/magic-sets):浏览、编辑、提交、推送
都在这里做,规则内容改完即时生效。
| 区域 | 说明 |
|---|---|
| 状态条 | 仓库地址、分支、当前提交;徽标:干净 / 有本地改动 / 领先 / 落后 / 冲突 |
| 左侧文件树 | 按目录分组,每个文件带状态标记:● 本地已改、▲ 远端已更新、⚠ 冲突、○ 干净 |
| 右侧编辑器 | 选中文件后直接改;「保存」只写工作树,「保存并提交」提交并推送 |
| 立即同步 | 拉取仓库并把 rule/*.yaml 同步进规则来源 |
操作进行中的反馈:提交、推送、同步都是 Git 操作,要花时间(推送走 SSH,可能十几秒)。 这些操作进行时,「保存并提交」「立即同步」会置灰并显示「提交推送中…」「同步中…」, 状态条上出现「⏳ 提交并推送」这类标记;后台有别的操作在跑(另一个标签页或定时同步)时同样置灰, 操作结束后自动恢复。同一时刻只允许一个 Git 操作,第二个请求会被直接挡下, 提示「上一操作还在进行中(提交并推送),等它结束再试」。
规则集合自动成为规则来源:仓库里 rule/<名称>.yaml 会变成一条 kind='repo' 的规则来源,
内容以仓库为准,启用状态归面板(仓库不覆盖它)。集合名 = 文件名去扩展名,
中文展示名写在文件头注释里。script/ 与 rewrite/ 是素材区:面板只管理文件,不消费;
要启用其中某个片段,去「拓展模块」页新建一条「远程 URL」指向它。
改集合内容的固定流程:在自主维护页改文件 → 保存并提交(推送)→ 点「立即同步」 (或等 12 小时定时同步)→ 客户端下一次拉取就是新的。自维护层不经 jsDelivr 中转,没有 12 小时缓存。
冲突(本地与远端改了同一个文件)会停在冲突态:点组头展开冲突条, 三方对照(共同祖先 / 本地 / 远端),可以手工合并,也可以整体用远端或整体保留本地。
仓库设置(右上角):仓库地址、分支、鉴权方式(SSH 部署密钥 / HTTPS Token / 公开仓库)、
提交身份、同步间隔、保存并提交后是否自动推送、排除路径清单、仓库新增 rule/*.yaml
时是否自动建来源。打开抽屉时会回显当前配置,改完保存即可。
私钥与 Token 只写不读(接口永不回显),只能看到是否已配置,可以点「生成密钥对」
由面板生成一对,再把公钥贴到仓库的 Settings → Deploy keys(要勾 Allow write access)。
排除清单默认
.git,.github,.env,*.bak,.*:点开头的路径(.editorconfig、.gitignore等) 默认都不纳管,删掉.*可放开;.git永远不可放开。
审计日志
记录谁在什么时候做了什么:登录、增删改、发布、查看订阅地址等。搜索后可以按条件删除。
系统设置
| 区块 | 内容 |
|---|---|
| 分发设置 | 对外基础地址、配置更新提示、会话有效期、核心下载代理 |
| WebDAV 远程备份 | 地址、账号、密码、间隔、保留份数;测试连接、立即备份、查看远端备份、从远端恢复 |
| 测速核心 | 在线安装最新版、本地上传(.gz / .zip / 裸二进制) |
| Magic Panel 首页访问 | 门户 PIN 的设置与撤销 |
| 我的头像 | 上传或移除头像 |
| 维护者账号 | 添加、删除其他维护者 |
| 修改我的密码 | 改完密码后其他设备的会话失效 |
| 备份与恢复 | 导出 JSON 备份、从备份恢复 |
备份含加密后的订阅地址与令牌摘要,必须和 data/secret.key 分开保管——主密钥丢了,加密内容就恢复不出来。
典型操作流程
新增一个机场
- 节点来源 → 添加订阅 → 填名称、URL → 保存
- 点「抓取」确认有节点
- 策略组 → 新建一个组 → 勾选这个来源 → 保存
- 分流策略 → 改一条规则的指向,或新建一条 → 保存
- 构建发布 → 创建构建 → 校验通过 → 发布至测试 → 在测试设备上验证 → 发布至生产
给某台设备单独加个东西
- 设备管理 → 复制地址,确认是哪台设备
- 基础配置 → 左侧树选这台设备的「设备独立配置」
- 新增参数或用预设,保存
- 不用重新发布——设备独立配置是在分发时叠加的,客户端下次拉取就带上了
例外:改了「引擎默认配置」和「引擎平台配置」必须重新构建发布,因为那两层固化在构建产物里。
某台设备要用 MTProto
- 基础配置 → 选该设备的「设备独立配置」
- 预设 → 选「MTProto 代理(Telegram)」→ 套用
- 从生效配置里复制
mtproto.secret(32 位十六进制) - Telegram 代理设置里选 MTProto,填设备的地址、
5753、密钥
怀疑节点不通
- 系统状态 → 看「测速链路」是不是 NAS 直连
- 节点来源 → 对可疑来源点「测速」
- 必要时在「设置 → 测速核心」重新安装核心
常见问题
客户端拉到的配置还是旧的 改完设置没发布。引擎默认配置和引擎平台配置要重新构建发布;设备独立配置下次拉取就生效。
客户端提示配置加载失败 多半是规则类型超出该引擎的支持范围,或者策略组被引用成了空组。构建详情里会写明原因。
某台设备收不到规则 检查这条规则的「适用引擎平台」和「适用设备」——两者是取交集的,任一不匹配都不会生效。
订阅地址失效了 令牌被轮换或设备被删除。设备管理里「复制地址」取新的。
节点测速很慢或者结果不准 看系统状态的「测速链路」。面板必须走 NAS 直连,NAS 上的全局代理会影响它。
忘记密码了 用另一个维护者账号登录后重置;只有一个维护者时,需要在服务器上重置数据库里的账号记录。
备份恢复不了
多半是缺 data/secret.key。它和备份文件必须一起保管。