安装
安装 hub
一键脚本
安装命令见快速开始。脚本从 GitHub release 下载二进制,按 sha256sums.txt 校验后放进 /opt/monitor,建一个 monitor 系统用户,写一个加固过的 systemd 单元,hub 只监听 127.0.0.1。
脚本只支持 systemd。有终端时显示菜单(安装 / 升级、卸载、状态、日志);经 curl ... | sh
管道执行时没有终端可以作答,直接按默认值安装。
参数
| 参数 | 说明 |
|---|---|
--host <addr> | 监听地址,默认 127.0.0.1。改成 0.0.0.0 或内网地址后端口就明文可达了,只应在内网、或反向代理之后这样用 |
--port <n> | 本机监听端口,默认 28080 |
--site <url> | 一般不用填,见下文什么时候需要 --site |
--uninstall | 卸载,数据保留在 /opt/monitor/data,见卸载 |
--purge | 卸载并删除数据库,不可恢复 |
--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不会被冲掉
脚本不会自我更新:每次用到的就是手上这一份。要拿到新脚本,按快速开始里的命令重新下载一次。
面板左上角在站点名旁显示正在运行的 hub 版本。Docker 部署的升级见 Docker 部署。
不用脚本
二进制在 release 页面,文件名是
monitor-hub-<arch>-unknown-linux-musl,静态链接,不需要配置文件:
# 监听 [::]:28080,数据库 ./monitor.db,首次启动在标准输出打印应急密码
monitor-hubbash| 参数 | 默认 | 说明 |
|---|---|---|
--listen | [::]:28080 | 监听地址 |
--db | monitor.db | SQLite 路径 |
--site | 空 | 对外地址,只有个别反代场景需要 |
--themes | 数据库同级的 themes/ | 主题目录 |
--group-dropdown | 关 | 「分组」字段列出已在用的分组名,分组很多时好用 |
默认的 [::]:28080 在 Linux 上同时接收 IPv6 和 IPv4(v4-mapped 地址),双栈机器不用额外配置;内核禁用了 IPv6 或设了 bindv6only=1 时自动退回 0.0.0.0:28080。
自己指定 --listen 时注意地址族:只听 IPv4 的 hub 收不到只有 IPv6 的节点,反之亦然。节点只会不断重连,两边都没有日志说明原因。
--group-dropdown 让编辑节点里的「分组」在输入框下方列出已经在用的分组名(继续输入新名字照旧)。默认关闭:它只在分组很多、名字记不全时有用,而那个字段本来也是新建分组的地方。
前面有反向代理时,加 --listen 127.0.0.1:28080。否则明文端口对外可达,别人可以绕过反代直接访问面板,并伪造 X-Forwarded-Proto。
什么时候需要 --site
不带 --site 时,面板按浏览器地址栏里的地址生成安装命令,会话 cookie 的 Secure 标志看反代发来的
X-Forwarded-Proto。常规反代不用填。
两种情况要填:
- 节点要连的域名和你进面板用的域名不是同一个:填节点可达的 HTTPS 域名
- 反代不发
X-Forwarded-Proto:cookie 拿不到Secure,用--site https://...强制加上
内网直连可以用明文
从同一内网直接访问(没有经过反向代理)时,面板允许用 http://私网IP:28080 添加节点:hub 看到 TCP
对端是私网地址、且这次请求没有声明 X-Forwarded-Proto,就按「令牌不出这个网络」处理。--site 不必填,安装命令用浏览器地址栏里的地址。
两种情况下这个例外不成立,仍是「必须 HTTPS 域名」:请求是反代转发的(hub 会取 X-Forwarded-For 的最后一段,那就是真实客户端),或者声明了 X-Forwarded-Proto。
回环地址(localhost、127.0.0.1)也不算:那样生成的安装命令只有本机能用。
--site 必须是 https:// 加域名,可以带端口,不能是 IP,不能带路径。不符合时 hub 照常启动,但拒绝添加和安装节点。
能不能添加节点,看两件事:hub 收到的 Host 必须是域名(不能是 IP,也不能是 localhost),以及这次请求必须是走 HTTPS 进来的——反代发了 X-Forwarded-Proto: https,或者给 hub 配了合法的 --site https://…。所以从 IP 直接进面板时,填了 --site 也加不了节点:Host 仍然是那个 IP。