安装
安装 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 -fbash重置应急密码见登录与安全。
升级
在当初下载脚本的目录里重跑一次,菜单里选「安装 / 升级」,端口回车沿用原来的:
sudo ./install-hub.shbash- 新二进制校验通过才替换;新版起不来时自动换回上一版
- 没写的参数沿用上次安装的,端口和
--site不会被冲掉 - 脚本先把自己和最新 release 比对,不是最新版就下载新版、按
sha256sums.txt校验、覆盖原文件,再用新版接着装
v1.2.0 及更早的脚本(当时从 raw.githubusercontent.com 下载)没有这一步自检,要按快速开始里的命令重新下载一次。
面板的更新页显示 hub 的当前版本和最新版本。Docker 部署的升级见 Docker 部署。
不用脚本
二进制在 release 页面,文件名是
monitor-hub-<arch>-unknown-linux-musl,静态链接,不需要配置文件:
# 监听 [::]:28080,数据库 ./monitor.db,首次启动在标准输出打印应急密码
monitor-hubbash| 参数 | 默认 | 说明 |
|---|---|---|
--listen | [::]:28080 | 监听地址 |
--db | monitor.db | SQLite 路径 |
--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 可以添加节点。