monitor

安装

安装 hub

一键脚本

安装命令见快速开始。脚本从 GitHub release 下载二进制,按 sha256sums.txt 校验后放进 /opt/monitor,建一个 monitor 系统用户,写一个加固过的 systemd 单元,hub 只监听 127.0.0.1。

脚本只支持 systemd。有终端时显示菜单(安装 / 升级、卸载、状态、日志、重置密码);经 curl ... | sh 管道执行时没有终端可以作答,直接按默认值安装。

参数

参数说明
--port <n>本机监听端口,默认 28080
--site <url>一般不用填,见下文什么时候需要 --site
--uninstall卸载,数据保留在 /opt/monitor/data,见卸载
--purge卸载并删除数据库,不可恢复
--reset-password重置应急密码,登出所有会话
--yes / -y跳过确认
--help / -h显示用法

目录结构

除了 systemd 单元,其余都在一个目录下:

/opt/monitor/
├── monitor-hub          # hub 二进制
├── monitor-agent        # 这台机器也装了 agent 时才有
├── agent.env            # agent 的 token,0600 root
└── data/                # 服务唯一可写的目录,0700 monitor
    ├── monitor.db
    └── themes/          # 在面板上安装的主题

服务以 monitor 用户运行,单元里写了 ReadWritePaths=/opt/monitor/data,hub 改不了自己的二进制。

常用命令

# 服务状态
systemctl status monitor-hub
# 实时日志
journalctl -u monitor-hub -f
bash

重置应急密码见登录与安全。

升级

在当初下载脚本的目录里重跑一次,菜单里选「安装 / 升级」,端口回车沿用原来的:

sudo ./install-hub.sh
bash
  • 新二进制校验通过才替换;新版起不来时自动换回上一版
  • 没写的参数沿用上次安装的,端口和 --site 不会被冲掉
  • 脚本先把自己和最新 release 比对,不是最新版就下载新版、按 sha256sums.txt 校验、覆盖原文件,再用新版接着装

v1.2.0 及更早的脚本(当时从 raw.githubusercontent.com 下载)没有这一步自检,要按快速开始里的命令重新下载一次。

面板的更新页显示 hub 的当前版本和最新版本。Docker 部署的升级见 Docker 部署。

不用脚本

二进制在 release 页面,文件名是 monitor-hub-<arch>-unknown-linux-musl,静态链接,不需要配置文件:

# 监听 [::]:28080,数据库 ./monitor.db,首次启动在标准输出打印应急密码
monitor-hub
bash
参数默认说明
--listen[::]:28080监听地址
--dbmonitor.dbSQLite 路径
--site空对外地址,只有个别反代场景需要
--themes数据库同级的 themes/主题目录
--reset-password重置应急密码并打印出来,然后退出。数据库必须已存在

默认的 [::]:28080 在 Linux 上同时接收 IPv6 和 IPv4(v4-mapped 地址),双栈机器不用额外配置;内核禁用了 IPv6 或设了 bindv6only=1 时自动退回 0.0.0.0:28080。

自己指定 --listen 时注意地址族:只听 IPv4 的 hub 收不到只有 IPv6 的节点,反之亦然。节点只会不断重连,两边都没有日志说明原因。

前面有反向代理时,加 --listen 127.0.0.1:28080。否则明文端口对外可达,别人可以绕过反代直接访问面板,并伪造 X-Forwarded-Proto。

什么时候需要 --site

不带 --site 时,面板按浏览器地址栏里的地址生成安装命令,会话 cookie 的 Secure 标志看浏览器的 Origin、反代发来的 X-Forwarded-Proto 和 Cloudflare 写的 CF-Visitor,任一个是 https 就加。常规反代不用填。

三种情况要填:

  • 节点要连的域名和你进面板用的域名不是同一个:填节点可达的 HTTPS 域名
  • 通过 SSH 隧道进面板,地址栏是 http://127.0.0.1:PORT:节点连不上这个地址,用 --site 补上
  • 用 GitHub 登录,而反代不发 X-Forwarded-Proto,或前面是 Cloudflare 以外的 CDN、后面又接了 nginx 这类会改写这个头的反代:GitHub 登录的回调不带 Origin,cookie 拿不到 Secure,用 --site https://... 强制加上。密码登录不受影响

--site 必须是 https:// 加域名,可以带端口,不能是 IP,不能带路径。不符合时 hub 照常启动,但拒绝添加和安装节点。

--site 不能把 IP 入口变成域名入口。从公网 IP 或明文地址进面板时,添加节点、批量添加和安装命令都不可用,填了 --site 也一样。回环地址是例外:隧道那一段是加密的,所以 http://127.0.0.1:PORT 配上合法的 --site 可以添加节点。

在 GitHub 上修改这一页最后更新 2026-10-19