概览
Mistgate 是什么、不是什么、适合谁使用,以及各部分如何配合。
Mistgate 是一个自托管面板,用于管理你在自己的服务器上运行的小型 VPN 集群。本页介绍它能做什么、不能做什么,以及其余文档所依据的基本概念。
Mistgate 是什么#
- 两个程序,无需 Docker。
mistgate是面板。mistgate-node是运行在每台 VPN 服务器上的 Agent。两者都是适用于 Linux(amd64 和 arm64)的独立 Go 二进制文件。 - 一个管理后台管理整个集群。 面板使用一个 SQLite 数据库保存用户、协议配置和服务器,并通过 Web 管理后台展示这些内容,管理后台提供英语、俄语和简体中文。
- 服务器上的工作由 Agent 完成。 Agent 运行各个协议,并使主机保持面板要求的状态。Agent 主动连接面板,因此你的服务器无需开放管理端口供面板访问。面板仅在以下情况下通过 SSH 登录服务器:安装节点(从管理后台发起,或由 AI 智能体在你批准后发起);以及在 SSH 凭据仍保存期间,按你的要求更换或检查服务器密码。
- 协议。 Hysteria2(官方核心,内置于 Agent)、通过 XHTTP 或 TCP 运行的 VLESS REALITY(xray-core,内置于 Agent),以及 AmneziaWG 2.0 和 3.1(默认使用用户态,按节点启用内核模块)。三者都可以通过 Cloudflare WARP 出口。
- 每人一个链接。 订阅类应用打开链接后,会以它能读取的格式收到服务器列表(一组
hysteria2://和vless://链接,或一份 Mihomo YAML 配置;格式由 User-Agent 规则决定)。浏览器会打开用户自己的页面并显示说明。AmneziaVPN 用户每台设备会获得一个密钥。 - 默认隐藏。 陌生人打开面板地址时会看到伪装站点。管理后台位于私密路径、私密主机名或单独的监听器上;未知的订阅链接也会显示相同的伪装站点。
- 运行状况和更新。 面板会像真实客户端一样检查每台服务器;每个节点都会运行主机检查诊断,并提供少量安全修复;告警会用直白的语言说明问题。节点 Agent 和面板只会更新到由内置发布密钥签名的发布版本:官方 GitHub Releases 使用项目密钥,自行构建则使用你自己的密钥。
- 备份。 按计划或按需将面板加密备份到你的 Cloudflare R2 存储桶。
- 自动化。 脚本使用与管理后台相同的 Connect API,并通过有范围限制的 API 令牌授权;AI 智能体使用内置 MCP 服务器,风险较高的更改须等待所有者审批。
Mistgate 不是什么#
- 不是 VPN 服务。 服务器和域名由你提供并管理。Mistgate 不出租服务器,也不出售访问权限。
- 不是计费系统。 没有付款、套餐或发票。流量配额、有效期和设备上限均由你自行设置。
- 不是客户端应用。 用户使用现有应用连接:例如 Happ 这样的订阅类应用,或基于 mihomo 内核的应用,例如 kl!ck(Windows 和 macOS 上推荐)、Clash Verge 或 FlClash;AmneziaWG 密钥则通过 AmneziaVPN 使用。
- 尚未完成。 这是早期版本:API、保存的设置和节点协议在 1.0 之前仍可能改变。数据模型适用于约 5,000 个用户和 50 个节点。
- 不是一键安装程序。 面板需要手动安装:使用 GitHub Release 中的 Linux 二进制文件,或从源代码构建。添加节点时,从管理后台通过 SSH 自动安装,或使用你在服务器上运行的一次性安装命令。面板的一行命令安装脚本:计划中。
适用对象#
Mistgate 面向为自己、家人、朋友或小型社群运行几台 VPN 服务器的个人或小团队。你应熟悉 Linux、SSH、systemd 和 DNS 记录。部分默认值偏向俄罗斯用户(俄罗斯节点默认使用 Yandex DNS、诊断使用的检测域名、DNS 分流预设);这些都可以在设置中修改。
概念#
| 概念 | 说明 |
|---|---|
| 面板 | 每个安装实例运行一个 mistgate serve 进程。它保存数据库、用于加密已存储密钥的主密钥,以及面板自己的证书颁发机构(CA)。它在公网地址提供伪装站点、订阅和用户页面,在私密地址提供管理后台,并提供节点 Agent 连接的端点。 |
| 节点 | 承载 VPN 流量的 Linux 服务器。它有一个名称(de1)、客户端连接的地址(域名或 IP),以及可选的国家/地区。 |
| Agent | 节点上的 mistgate-node 服务。它持有由面板 CA 签发的客户端证书,与面板保持一个连接,在此节点上应用面板的设置,并报告流量、会话、运行状况和事件。 |
| 协议配置 | 可重复使用的协议设置:一种协议及其设置(端口、证书、混淆等)。部署到节点之前,协议配置不会执行任何操作。 |
| 节点上的服务器 | 部署到节点上的协议配置。它是节点上实际监听端口的服务,也是用户在应用中看到的一台服务器。不同节点上的端口和域名(SNI)可以不同。API 将其称为入站(inbound)。 |
| 分组 | 一组协议配置。每个用户属于一个分组,并获得该分组的协议配置。新面板会创建一个名为「所有人」的空分组。 |
| 用户 | 获得访问权限的人:其分组、使用的应用(订阅链接、AmneziaVPN 或两者)、可访问的节点(全部或部分)、流量配额、有效期和设备上限。状态包括有效、已停用、已过期或超出配额。 |
| 设备 | 用户持有凭据的设备。对于订阅类应用,应用获取链接时会自动登记设备,每个设备 ID 一台,并有各自的密钥;不发送设备 ID 的应用共用一个名额。对于 AmneziaWG,一个设备对应绑定到一个协议配置的密钥。设备上限按设备计数。 |
| 订阅链接 | 每位用户一个私密 URL。应用获取链接后会得到用户的服务器;浏览器则会打开用户页面。新链接会立即替换旧链接。 |
| 用户页面 | 在浏览器中打开链接时显示的页面:包含对应平台的说明、二维码、流量和有效期,以及用户自行生成的 AmneziaWG 设备密钥(如果你允许)。页面可以要求输入密码。 |
它们之间的关系:
- 当协议配置位于用户所属的分组中、节点属于该用户可用的节点、服务器已启用、用户状态为有效,并且该用户至少有一个应用可使用此协议(订阅类应用使用 Hysteria2 和 VLESS;AmneziaVPN 使用 AmneziaWG;用户启用 AmneziaVPN 时,基于 mihomo 内核的应用也可使用 AmneziaWG),用户即可使用节点上的服务器。
- 其中任一项发生更改,都会立即下发到受影响的节点。无需手动重启任何服务。
用户的应用如何连接节点#
应用只与面板通信以获取链接。VPN 流量从应用直接流向节点,再连接互联网;不会经过面板。