Ctrl K
ComunidadGuías…

README.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 3m-ui

<p align="center">
  <img src="frontend/public/logo.png" alt="3m-ui logo" width="160" />
</p>

> Languages / 语言: **README** · [English](./docs/readme/README.en.md) · [简体中文](./docs/readme/README.zh-CN.md) · [繁體中文](./docs/readme/README.zh-TW.md) · [日本語](./docs/readme/README.ja.md) · [한국어](./docs/readme/README.ko.md) · [Español](./docs/readme/README.es.md) · [Français](./docs/readme/README.fr.md) · [Deutsch](./docs/readme/README.de.md) · [Русский](./docs/readme/README.ru.md) · [Português (Brasil)](./docs/readme/README.pt-BR.md) · [Tiếng Việt](./docs/readme/README.vi.md) · [Bahasa Indonesia](./docs/readme/README.id.md) · [ไทย](./docs/readme/README.th.md) · [Türkçe](./docs/readme/README.tr.md) · [العربية](./docs/readme/README.ar.md) · [हिन्दी](./docs/readme/README.hi.md) · [Polski](./docs/readme/README.pl.md) · [Українська](./docs/readme/README.uk.md)

**Mihomo 服务端 Web 管理面板**

> **稳定版优先:** 默认安装和更新只使用正式 Release。预发布需要主动选择。完整安装包及 Docker 镜像包含固定版本的 Mihomo;详见 [安装、升级与恢复](https://3m-ui.top/guide/install)。

轻量、自托管,用于在 Linux 上管理 [Mihomo](https://github.com/MetaCubeX/mihomo) Listener、用户、订阅与运行状态。

[![Go](https://img.shields.io/github/go-mod/go-version/kazeyukiro/3m-ui?filename=backend%2Fgo.mod)](./backend/go.mod)
<a href="https://linux.do" alt="LINUX DO">
      <img src="https://img.shields.io/badge/LINUX-DO-FFB003.svg?logo=data:image/svg%2bxml;base64,DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGQ9Ik00Ni44Mi0uMDU1aDYuMjVxMjMuOTY5IDIuMDYyIDM4IDIxLjQyNmM1LjI1OCA3LjY3NiA4LjIxNSAxNi4xNTYgOC44NzUgMjUuNDV2Ni4yNXEtMi4wNjQgMjMuOTY4LTIxLjQzIDM4LTExLjUxMiA3Ljg4NS0yNS40NDUgOC44NzRoLTYuMjVxLTIzLjk3LTIuMDY0LTM4LjAwNC0yMS40M1EuOTcxIDY3LjA1Ni0uMDU0IDUzLjE4di02LjQ3M0MxLjM2MiAzMC43ODEgOC41MDMgMTguMTQ4IDIxLjM3IDguODE3IDI5LjA0NyAzLjU2MiAzNy41MjcuNjA0IDQ2LjgyMS0uMDU2IiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZWNlY2VjO2ZpbGwtb3BhY2l0eToxIi8+PHBhdGggZD0iTTQ3LjI2NiAyLjk1N3EyMi41My0uNjUgMzcuNzc3IDE1LjczOGE0OS43IDQ5LjcgMCAwIDEgNi44NjcgMTAuMTU3cS00MS45NjQuMjIyLTgzLjkzIDAgOS43NS0xOC42MTYgMzAuMDI0LTI0LjM4N2E2MSA2MSAwIDAgMSA5LjI2Mi0xLjUwOCIgc3R5bGU9InN0cm9rZTpub25lO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGw6IzE5MTkxOTtmaWxsLW9wYWNpdHk6MSIvPjxwYXRoIGQ9Ik03Ljk4IDcwLjkyNmMyNy45NzctLjAzNSA1NS45NTQgMCA4My45My4xMTNRODMuNDI2IDg3LjQ3MyA2Ni4xMyA5NC4wODZxLTE4LjgxIDYuNTQ0LTM2LjgzMi0xLjg5OC0xNC4yMDMtNy4wOS0yMS4zMTctMjEuMjYyIiBzdHlsZT0ic3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbDojZjlhZjAwO2ZpbGwtb3BhY2l0eToxIi8+PC9zdmc+" />
    </a>
> 文档:[https://3m-ui.top/docs/](https://3m-ui.top/docs/) · 官网:[https://3m-ui.top/](https://3m-ui.top/) 

---

## 特性

| 类别 | 能力 |
|------|------|
| **节点** | 协议注册表驱动的 Listener:VLESS / VMess / Trojan / Shadowsocks / Hysteria2 / TUIC / AnyTLS / Snell / ShadowQUIC 等;Reality、TLS 自签、一键批量证书、**流量倍率**、传输层字段互斥校验 |
| **用户** | **一键创建**(随机用户名/密码/UUID,可选绑定全部节点)、绑定节点、流量限额、**按节点分别计量**(计费 = 实际 × 节点倍率)、到期、IP/订阅拉取限制、首次使用起算、周期续期/重置、分组标签、外部订阅合并、批量操作、订阅 Token |
| **订阅** | UA 自动识别 Clash/Mihomo YAML、v2ray Base64(`?target=v2ray` 始终 Base64)、sing-box JSON;可选 `?target=`;HTML 订阅页;TUIC/HY2 分享链含 SNI/`allow_insecure` 等客户端参数 |
| **配置** | 生成 → 校验 → 应用 分离;失败回滚上一份 `config.yaml` |
| **Telegram** | 告警与管理命令(需 Token + Chat ID) |
| **多机** | 登记远程面板、健康检查、同步节点镜像、合并订阅;**按名称选择本机节点推送**到远程(默认禁用,可改名/端口) |
| **安全** | JWT、首登改密、TOTP 两步验证、可选 **GitHub OAuth**、web_path 路径前缀、凭据加密、CORS |
| **运维** | 核心启停/更新、Geo、面板 SSL/ACME(含 DNS-01 通配符)、备份、**Cloudflare WARP** 一键注册(WireGuard/MASQUE YAML) |

### 补充说明(用户限制 / 证书 / 订阅)

- [用户限制:IP · 订阅拉取](https://3m-ui.top/guide/users-limits)
- [按节点流量与倍率](https://3m-ui.top/guide/node-traffic)
- [面板 SSL / ACME(HTTP-01、DNS-01 通配符)](https://3m-ui.top/guide/ssl-cert)
- [批量应用节点证书](https://3m-ui.top/guide/batch-certificate)
- [订阅格式与 target](https://3m-ui.top/guide/subscription-formats)
- [多机节点 / 推送](https://3m-ui.top/guide/cluster)
- [路由(客户端订阅 + 服务端出站)](https://3m-ui.top/guide/routing)
- [Cloudflare WARP](https://3m-ui.top/guide/warp)

前端:**React + Ant Design + Lucide Icons**(`frontend/`),构建后嵌入单一 Go 二进制。

发布产物:**纯静态链接**(`CGO_ENABLED=0` + modernc SQLite),无需系统 `libsqlite3`,兼容 glibc / musl。

完整安装包 / Docker:`linux/amd64` · `arm64`。高级独立面板二进制另外支持 `armv7` · `armv6` · `386` · `riscv64` · `loong64` · `ppc64le` · `s390x`,需要自行准备兼容内核。

---

## 快速安装

```bash
curl -fsSL https://raw.githubusercontent.com/kazeyukiro/3m-ui/main/scripts/install.sh | sudo sh
```

完整安装支持 Linux amd64 / arm64,自动安装面板、配套 Mihomo 和系统服务。首次配置和管理员密码由程序统一生成;配置已存在时保持原值。其他架构可使用独立二进制和自行准备的内核,见 [详细安装说明](https://3m-ui.top/guide/install)。

安装完成后:

```text
面板地址   http://SERVER_IP:8080/
默认账号   admin
初始密码   安装时随机生成并显示一次,首次登录必须修改
管理命令   3m-ui
```

更新:

```bash
# 推荐(已安装后)
sudo 3m-ui update
# 指定版本: sudo 3m-ui update v1.0.6
# 从旧安装脚本迁移时,先重新执行上面的最新安装命令,配置和账号会保留。
```

卸载:

```bash
sudo 3m-ui uninstall
```

### AI 提示词安装

把提示词复制到 ChatGPT / Claude / Cursor 等助手,并说明你的系统(如 Ubuntu 22.04)与是否已有 root SSH。助手应只协助执行官方脚本,不要改写成不明来源命令。完整提示词及使用说明见 [AI 提示词安装文档](docs/ai-install-prompt.md)。

无需手动复制大段文本,用 `curl` 直接把纯文本提示词加载到剪贴板再粘贴:

```bash
curl -fsSL https://raw.githubusercontent.com/kazeyukiro/3m-ui/main/docs/ai-install-prompt.zh.txt | pbcopy        # macOS
curl -fsSL https://raw.githubusercontent.com/kazeyukiro/3m-ui/main/docs/ai-install-prompt.zh.txt | xclip -sel clip # Linux X11
curl -fsSL https://raw.githubusercontent.com/kazeyukiro/3m-ui/main/docs/ai-install-prompt.zh.txt | wl-copy       # Linux Wayland
```

提示词只引导使用下方官方一键脚本,所有下载均校验 `SHA256SUMS`:

```bash
curl -fsSL https://raw.githubusercontent.com/kazeyukiro/3m-ui/main/scripts/install.sh | sudo sh
```

测试 / 预发布通道(可选,非默认)见 [AI 提示词安装文档](docs/ai-install-prompt.md)。

---

## Docker 安装

Linux VPS 下载发布版本中的 `docker-compose.yml`,在同一目录执行:

```bash
docker compose up -d
docker compose logs 3m-ui
```

镜像为 `ghcr.io/kazeyukiro/3m-ui:latest`,包含面板及固定版本的 Mihomo;`latest` 只跟随稳定版。配置、随机密钥和管理员会自动初始化,首次密码只在首次启动输出一次。默认 host 网络,新增节点后放行实际使用的 TCP/UDP 端口。另提供 `docker-compose.bridge.yml`,以及版本固定、证书配置和持久化恢复说明,见 [安装文档](https://3m-ui.top/guide/install)。

---

## 从源码构建

```bash
# 前端
cd frontend && npm install && npm run build

# 嵌入并编译后端(示例 amd64)
rm -rf backend/cmd/server/web/dist
cp -r frontend/dist backend/cmd/server/web/dist
cd backend
CGO_ENABLED=0 go build -tags sqlite_modernc -trimpath -ldflags='-s -w' -o ../3m-ui ./cmd/server
```

需要本机已安装兼容的 **Mihomo** 二进制,并在配置中指向其路径。

---

## 配置要点

默认数据与配置大致位于:

| 路径 | 用途 |
|------|------|
| `/etc/3m-ui/config.yaml` | 面板配置 |
| `/var/lib/3m-ui/3m-ui.db` | SQLite |
| `/var/lib/3m-ui/listener-certs/` | 节点自签证书(**请与数据库一并备份**) |
| `/var/lib/3m-ui/mihomo/` | Mihomo 工作目录与 `config.yaml` |

JWT / 凭据密钥请使用独立随机值(≥ 32 字节),不要使用文档示例。

自定义面板端口:`3m-ui config port <port>` 或编辑配置后重启服务。
新建节点默认随机填写 10000~60000 的监听端口(轻量抽样并避开已加载节点端口;支持倒序范围),可手动修改或点击「随机端口」。

---

## 架构示意

```text
  Browser (Ant Design + Lucide)
        │  REST + JWT
        ▼
  Gin API  ── Telegram Bot
        │
   Service layer (users / listeners / sub / cluster / …)
        │
   SQLite · certstore · visual config
        │
        ▼
     Mihomo (-t 校验 → 应用 / 回滚)
```

---

## 备份建议

至少备份:

1. `3m-ui.db`
2. `listener-certs/`
3. 面板 `config.yaml` 与 Mihomo 配置目录

仅更新二进制时,证书会尽量从磁盘 hydrate;若目录丢失会重新自签,客户端需重新拉取订阅。

---

## 致谢

特别感谢以下开源项目和社区:

- [Mihomo](https://github.com/MetaCubeX/mihomo) — 核心代理引擎及 Listener 配置模型
- [acme.sh](https://github.com/acmesh-official/acme.sh) — SSH 菜单的证书申请/部署/续期
- [clashmeta-inbound](https://github.com/Tychristine/clashmeta-inbound/) — Listener 配置示例与协议参考
- [3x-ui](https://github.com/MHSanaei/3x-ui) / [s-ui](https://github.com/alireza0/s-ui) — 面板交互与运维思路参考
- [Gin](https://github.com/gin-gonic/gin) — 后端 HTTP 框架
- [GORM](https://github.com/go-gorm/gorm) — 数据库 ORM
- [React](https://github.com/facebook/react) — 前端基础
- [Ant Design](https://github.com/ant-design/ant-design) — UI 组件
- [Lucide](https://github.com/lucide-icons/lucide) — 图标(`lucide-react`,经 `frontend/src/icons.tsx` 适配)
- [AIsouler/MyClash](https://github.com/AIsouler/MyClash) — Mihomo 分流配置与精简规则思路参考
- [echs-top/proxy](https://github.com/echs-top/proxy) — Mihomo 规则与策略组方案参考
- [YiXuanZX/rules](https://github.com/YiXuanZX/rules) — 规则集与 mihomo 分流模板参考
- [Zustand](https://github.com/pmndrs/zustand) — 前端状态管理
- [golang-jwt/jwt](https://github.com/golang-jwt/jwt) — JWT
- Go、Node.js 以及整个开源社区

贡献者:[Contributors](https://github.com/kazeyukiro/3m-ui/graphs/contributors)

---

## Star History

<a href="https://www.star-history.com/?repos=kazeyukiro%2F3m-ui&type=date&legend=top-left">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=kazeyukiro/3m-ui&type=date&theme=dark&legend=top-left" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=kazeyukiro/3m-ui&type=date&legend=top-left" />
   <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=kazeyukiro/3m-ui&type=date&legend=top-left" />
 </picture>
</a>

## 许可证

[![License: GPL v3](https://www.gnu.org/graphics/gplv3-rounded-red-180x60.jpg)](./LICENSE)

本项目自 commit `226c460` 之后采用 **GNU General Public License v3.0**。此前的提交与已发布版本仍受 **Eclipse Public License 2.0(EPL-2.0)** 约束,该授权不可撤回。

[GNU General Public License v3.0](./LICENSE)

第三方组件见 [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md)。

---

---

## English & other languages

Full translations (18 languages): see the language links at the top, or open [README.en.md](./docs/readme/README.en.md).