一个管内核、而不只是管 JSON 的 sing-box 面板
sing-box 是极好的代理内核,却不是一个多用户产品:一个 JSON、一个进程,不知道谁超量了。sing-box 面板把它变成一项服务。m-ui 就是这样一个面板 —— Maoyangui 开源,GPL-3.0,一个内嵌内核的 Go 二进制。
到底为什么需要面板
自己用 sing-box,一个配置文件加一个 systemd 单元就够了。给别人用,就多出内核不管的一切:给每个人发凭据、算各自的流量、到配额或到期日断掉、限制设备数、给出客户端能导入的订阅、让证书不过期,以及在不止一台服务器上做这些而不用改五份文件。这就是 sing-box 面板的活。大多数面板的做法是把 JSON 套上表单、重启一个外部进程。m-ui 的做法不同。

线路,而不是入站 / 出站 / 路由三张表
在 m-ui 里你管理的单位是线路:入口协议 + 端口 → 从哪出去。Hysteria2、AnyTLS、TUIC、VLESS Reality、Trojan、VMess、Shadowsocks 2022 都是线路;出口是直连或你的某个上游(另一个代理,或 Cloudflare WARP)。面板把线路渲染成完整的 sing-box 配置 —— 入站、出站,以及把它们连起来的路由规则 —— 部署到哪台服务器就为哪台渲染。你不用手工保持三张表一致;部署到三台服务器的线路是一条记录,不是三条。
快速添加会挑好默认参数和一个空闲端口;端口与其它线路、面板、本机任何程序撞上时保存会被拒绝;每次保存都先经 sing-box 自己解析再落库。
用户:凭据、配额、到期、设备、限速
用户建一次,各协议的凭据自动生成。分配能用的线路,设配额、到期日、可选的周期重置、设备数、上下行限速。判定每分钟跑一次:超量或到期就是停用并踢线,在每台服务器上。套餐把这些变成一键模板;代理有自己的面板和额度。详见用户管理。
用户真的能导入的订阅
每个用户一个订阅地址,三种格式:给小火箭、nextin、Surge 等的通用链接;Clash / Mihomo YAML;给 SFA / SFI 的完整 sing-box JSON。浏览器打开同一个地址是落地页:用量、到期、一键导入、二维码、客户端下载。每条线路按服务器各出一个节点,客户端按延迟选。订阅用完时,浏览器里看到原因和联系方式。
热更新,因为内核是内嵌的
sing-box 跑在面板进程里,所以改用户时 m-ui 换的是入站用户表,改上游时换的是出站。别人不重连。只有改线路的协议、端口、TLS 才重启数据面 —— 新配置起不来,上一份自动回来。看热更新是怎么做的和为什么内嵌内核。
一个面板,多台服务器
每台都装 m-ui,多出来的标成副机,把配对信息贴进主机。主机每 5 秒推送线路、用户、凭据,拉回流量与在线 IP,集中判定配额和设备数。主机不可达时副机照常转发。见多服务器。
安装
bash <(curl -fsSL https://raw.githubusercontent.com/Maoyangui/m-ui/main/deploy/install.sh)
Debian / Ubuntu(任何 systemd Linux 都行),root,amd64 或 arm64。然后五分钟到第一条订阅 —— 不需要域名。
m-ui 是不是适合你的 sing-box 面板?
- 是,如果你有好几台服务器、经常改用户,或者想要一个不用 Docker、不用单独对内核版本的二进制。
- 未必,如果你需要 Xray 独有的功能,或者习惯手改内核 JSON。看和其它面板的对比。