快速上手
一条命令把面板和内嵌的 sing-box 装成 systemd 服务。五分钟后,第一个用户就能导入订阅。
1. 安装
任何带 systemd 的 Linux,amd64 或 arm64(推荐 Debian 11+ / Ubuntu 20.04+),root 运行:
bash <(curl -fsSL https://raw.githubusercontent.com/Maoyangui/m-ui/main/deploy/install.sh)
脚本下载最新 Release,用同一个 Release 里的 SHA256SUMS 校验,装到 /usr/local/bin/m-ui,创建 systemd 服务并启动。数据库在 /etc/m-ui/m-ui.db。除此之外什么都不装 —— 没有 Docker、没有 Node、没有外部数据库。
还没想好?同一条命令后面加 --dry-run:打印会装到哪、写哪些文件、默认端口,什么都不改。
--import /path/to/旧面板.db,线路、上游、用户、设置一次带过来 —— 端口、凭据、订阅路径都保留,既有客户端不用刷新订阅就能继续连。线路已经在 m-ui 上重建好、只想搬用户,用 用户 → 从旧面板导入。2. 首次登录
- 面板地址:
http://<服务器IP>:2053/app/ - 默认账号:
admin/admin
顶部会一直提示,直到你把默认密码改掉 —— 先去 管理员 页改。端口、路径、账号以后也可以在 SSH 里执行 m-ui 用菜单改。界面有中英文,侧栏底部切换。
3. 证书
大多数协议需要 TLS。两条路都是完整支持的:
| 你有 | 怎么做 | 结果 |
|---|---|---|
| 解析到这台服务器的域名 | 证书 → 签发:Let's Encrypt,HTTP-01(80 端口可达)或 Cloudflare DNS-01(填 API Token,不用开 80)。到期自动续。 | 正式证书,客户端不提示。 |
| 只有 IP | 证书 → 自签,一键。 | 到处都能用;订阅会自动告诉客户端允许不安全证书。以后有了域名再换。 |
概览页的「快速开始」把这两种都算作"证书已就绪"。域名是推荐项,不是前置条件。
4. 建线路
线路 = 入口协议 + 端口 → 从哪出去(直连,或以后添加的上游)。线路页用 快速添加:Hysteria2、AnyTLS、VLESS + Reality、Trojan、Shadowsocks 2022、VMess + WS 都带合理默认值,空闲的五位端口已经填好。保存前会检查端口有没有和其它线路、面板、以及这台机器上任何别的程序撞上。
每次保存都先交给 sing-box 干跑。解析不通过就告诉你原因,运行中的数据面一动不动。
5. 建用户
用户页 新增用户:名字,可选的配额、到期、设备数、限速,以及能用哪些线路。各协议的凭据自动生成。第一个用户建好后,详情抽屉直接打开:订阅地址和二维码就在那里。
6. 把订阅发出去
每个用户一个订阅地址,三种格式:
- 通用链接(默认)—— 小火箭、nextin、Surge、Quantumult X、Loon、Karing……
?format=clash—— Clash / Mihomo / Clash Verge / FlClash / Stash?format=json—— 完整的 sing-box 配置,给 SFA / SFI / 桌面版 sing-box
用浏览器打开同一个地址就是落地页:用量、到期、一键导入、二维码、客户端下载。你允许的话,用户还能在那里生成临时共享地址。订阅用完、到期或被停用时,浏览器里看到的是一句说明和你的联系方式,不是一片空白的 404。
自动测试过的平台
安装脚本或 Go 代码每次改动,install-test 工作流都会在全新的 GitHub 托管机器上跑一遍:官方一行安装命令、服务起来、面板在 2053 端口返回 200、再装一次(升级路径)、故意装一个坏版本看它自动回滚、卸载。下面这份列表由最近一次完成的运行结果生成,不是手写的。
- Ubuntu 22.04 · amd64 — 真机全程:安装脚本 → systemd 服务 → 面板返回 200 → 再装一次 → 卸载 ✓
- Ubuntu 24.04 · amd64 — 真机全程:安装脚本 → systemd 服务 → 面板返回 200 → 再装一次 → 卸载 ✓
- Ubuntu 24.04 · arm64 — 真机全程:安装脚本 → systemd 服务 → 面板返回 200 → 再装一次 → 卸载 ✓
- Debian 12 · amd64 — 容器:安装脚本逻辑(dry-run)与静态二进制能启动,没有 systemd ✓
- Debian 13 · amd64 — 容器:安装脚本逻辑(dry-run)与静态二进制能启动,没有 systemd ✓
- Rocky Linux 9 · amd64 — 容器:安装脚本逻辑(dry-run)与静态二进制能启动,没有 systemd ✓
- Ubuntu 20.04 · amd64 — 容器:安装脚本逻辑(dry-run)与静态二进制能启动,没有 systemd ✓
最近一次运行:2026-09-28,提交 1672891(日志)。不在列表里的平台就是没有测过。
升级
点侧栏版本号旁边的更新箭头(面板每 6 小时查一次 GitHub Releases),或者再跑一遍安装命令,或者在 m-ui 菜单里选「更新到最新版」。只换程序本体;数据库、证书、设置都不动。新版本起不来会自动换回旧程序(升级前备份留在 /etc/m-ui/backups/)。
卸载
bash <(curl -fsSL https://raw.githubusercontent.com/Maoyangui/m-ui/main/deploy/install.sh) --uninstall
停掉并删除服务和程序;/etc/m-ui(数据库、证书、备份)保留,之后重新安装会原样接上。要一起删掉数据目录,加 --purge。SSH 菜单 m-ui 里的"卸载"效果相同,会问你要不要删数据目录。别的东西一概不碰:m-ui 从不改动机器上已有的 sing-box、Xray、Docker 或 nginx。