常见问题
短答案;长的在 README 的功能说明里。
装之前想知道的
会不会弄坏服务器上已有的 sing-box、Xray 或别的面板?
不会。m-ui 的 sing-box 内核跑在 m-ui 自己的进程里,不会安装、停止或改动系统里的 sing-box / Xray、它们的配置文件,或者别的面板。唯一共用的是端口 —— 给线路挑空闲端口(新建线路的表单已经帮你挑好)就能共存。
需要 Docker、Node 或数据库服务吗?
不需要。安装脚本只放一个静态 Go 二进制到 /usr/local/bin/m-ui,一个 SQLite 文件在 /etc/m-ui/m-ui.db,加一个 systemd 单元。没有 Docker、Node、nginx,也没有 MySQL / PostgreSQL。
安装脚本到底写了哪些文件?
/usr/local/bin/m-ui、目录 /etc/m-ui/(数据库、cert/、backups/)和 /etc/systemd/system/m-ui.service。没有别的。安装命令后面加 --dry-run,它会先按你的机器把这份计划打印出来,什么都不改。
会和 nginx、Caddy 这类 Web 服务冲突吗?
默认不会:面板在 2053,订阅在 2056,代理面板在 2054。只有用 HTTP-01 签证书时才短暂需要 80 端口;80 被占着就用 Cloudflare DNS-01 或自签。
卸载会删数据吗?
不主动删。install.sh --uninstall(或 SSH 菜单)只删服务和程序,保留 /etc/m-ui,重新安装就能接着用原来的用户、线路和证书。要连数据一起删,加 --purge。
不装能先试试吗?
能。在线演示就是真实的面板界面在浏览器里跑示例数据:不用登录、没有后端,改动刷新即恢复。它和发布版用的是同一套前端文件,看到什么装出来就是什么。
安装与配置
一定要有域名吗?
不用。证书 → 自签一键就有 TLS,订阅会自动告诉客户端允许不安全证书。有域名可以签 Let's Encrypt 证书、去掉那个提示 —— 推荐,但不是必须。
要放行哪些端口?
面板 2053/tcp、订阅 2056/tcp、开了代理面板再加 2054/tcp,以及每条线路的端口(TCP 或 UDP 看协议)。用 HTTP-01 签证书还需要 80/tcp;Cloudflare DNS-01 不需要。副机的面板端口只需对主机的 IP 放行。
能改面板端口和路径吗?
能,在设置里改;把自己锁在外面了就用 SSH 菜单(m-ui)。路径带不带结尾斜杠都能打开。端口保存前会校验,面板不会重启到一个被线路或别的程序占着的端口上。
系统要求?
Linux amd64 或 arm64,带 systemd;推荐 Debian 11+ / Ubuntu 20.04+,Rocky / CentOS 等其它 systemd 发行版也行。安装脚本依赖 systemd,所以 Alpine(OpenRC)不支持。安装需要 root。面板本身 1 核 1 GB 足够。CI 真正跑过的平台见自动测试过的平台。
为什么新建线路的表单里已经填了端口?
它挑了一个没被其它线路、面板和本机任何程序占用的五位端口,还真的绑定了一次确认。可以改;保存时冲突会被拦下。
用户与订阅
客户端里订阅名显示的是域名,不是我设的标题。
去 设置 → 订阅 → 订阅标题 填(代理在自己面板的订阅页填)。nextin、sing-box 这类每次刷新都读标题的客户端刷新即可。小火箭和 Clash Verge 是在添加订阅那一刻定名的,之后不改 —— 用落地页的一键导入按钮(会带上标题),或者让用户删掉重加。
设备数怎么算?
按不同的源 IP 算,跨所有服务器。手机连 Wi-Fi 和连流量是两个 IP。由主机统一判定,上限 3 就是总共 3 个。
用户能临时把订阅共享给别人吗?
你开启共享后,落地页上能生成一条临时共享地址,用的是另一套凭据。取消即刻只断借用者,本人不掉线;用量、设备、到期都算在本人头上。共享地址打开的是精简版落地页(一键导入、订阅地址、二维码、节点、你的公告和选购按钮),不显示本人的用量与到期。
用户订阅用完了看到什么?
浏览器里仍是他的落地页,顶部多一张状态卡(已到期 / 流量已用完 / 已停用,读的是面板数据),链接和二维码不变,带你的公告与联系方式;设置了选购链接就有「选购 / 续费」按钮(代理可填自己的)。只有对不上任何用户的地址才是"订阅地址无效"页。用户被停用期间客户端拿到的是纯 404。
订阅地址能不暴露用户名吗?
能。取消勾选 设置 → 订阅 → 用户名用作订阅链接,之后新建的用户拿到 32 位随机令牌。已有用户的地址不受影响。
多服务器
副机要自己的证书吗?
要,各自签发(自签就行)。线路带着主机的 TLS 设置下发,每台副机用自己的证书文件跑。
主机挂了怎么办?
副机拿着手里的配置照常转发。主机提供的订阅在它回来前打不开;把用户指向副机的话,副机也能提供订阅。
副机掉线了会怎样?
主机在服务器页把它标成离线(配了 Telegram 机器人会收到提醒),其它服务器照常。只部署在这台副机上的线路,在它回来前连不上。重连后主机重新推一次完整快照,流量从存好的游标接着算,不会重复计。
副机重连后流量会重复计吗?
不会。副机保存单调计数器,主机为每台副机存游标,只加增量。见多服务器。
代理
新建的代理登不进去。
新代理没有密码。在代理面板输入名字,密码留空直接点登录,面板会要求设一个。首登窗口过期了可以在主面板重置。
代理能看到我的用户或线路吗?
不能。代理只看到自己的用户与套餐,只能用你授权的线路。隔离在服务端强制,不是靠界面藏起来。
运维
更新怎么做?会丢数据吗?
GitHub 有新版本时侧栏会出现箭头。点一下:下载压缩包、用 Release 里的 SHA256SUMS 校验、替换程序、重启。数据库、证书、备份、设置都不动。再跑一遍安装命令效果一样。v0.4.9 起更新是一次事务:旧程序留着、先做升级前备份,新版本 90 秒内起不来就自动换回旧程序(必要时连备份一起还原),面板会明确提示。
备份里有什么?
数据库(做过检查点,自洽)和证书文件,打成一个 zip。面板里就能还原;换机向导能把整套搬到新服务器。
能从旧面板迁移吗?
能 —— 导入器读兼容格式的旧面板数据库,保留端口、凭据、面板路径与订阅地址,既有客户端不用刷新就能继续连。安装时加 --import /path/to/旧面板.db,或者用 用户 → 从旧面板导入 只搬用户。
m-ui 会上报什么吗?
不会。对外连接只有你自己配置的(ACME、Cloudflare、WARP、Telegram),以及每 6 小时向 GitHub Releases 查一次新版本。
去哪提问、报 Bug?
提问和想法:GitHub Discussions。确定的 Bug:用表单提 Issue。日志里的令牌、UUID、订阅地址请先打码。