参考
常见问题
安装与访问
装完面板打不开
正常现象。一键脚本装出的 hub 只监听 127.0.0.1,公网访问不到。配好反向代理,用域名访问。
「添加节点」是灰的
从 IP 地址或明文 HTTP 进面板时,添加节点、批量添加和安装命令都不可用:安装脚本和二进制要经这条链路下载,脚本以 root 执行,token 也会明文传输。按钮上方那行字写明了具体原因。
- 配好域名和 TLS,从
https://域名进面板即可。hub 依据的是浏览器的地址(Origin),不看Host和X-Forwarded-Proto - 地址栏已经是
https://加域名,按钮仍是灰的:hub 启动时带了--site,而它不是https://加域名(写成了 IP,或带了路径)。改正或去掉它,常规反代不需要--site - 通过 SSH 隧道进面板(地址栏是
http://127.0.0.1:PORT):给 hub 加--site https://你的域名,安装命令里用的就是这个地址
按钮能点,点了却提示「请求没有带 Origin 头」:反代清掉了这个头,删掉反代配置里
proxy_set_header Origin ""; 这类写法。
应急密码忘了
按重置应急密码重置一个,旧密码立即失效。
hub 连不上 GitHub
hub 从 GitHub release 取 agent 二进制转发给节点,主题的安装与更新也从那里取。hub 所在机器访问不了 GitHub 时,在设置页的 GitHub 代理填一个镜像地址,节点侧不用改。
agent 二进制有签名:hub 只转发验签通过的,镜像换不了。主题包没有签名,镜像返回什么就装什么。只在 hub
确实访问不了 GitHub 时填,只填信得过的镜像。设置只接受 https://。
更新页的版本检查访问的是 api.github.com,不经过这个代理。
节点
节点一直不上线
按顺序查:
# 1. agent 是否在运行;OpenRC 用 rc-service monitor-agent status
systemctl status monitor-agent
# 2. 日志里报了什么;OpenRC 用 tail -n 50 /var/log/monitor-agent.log
journalctl -u monitor-agent -n 50 --no-pager
# 3. 这台机器能否连上 hub
curl -sI https://hub.example.com/install.sh | head -1bash| 日志里看到 | 原因与处理 |
|---|---|
401 | token 换发过:用面板上这个节点的新命令重装。节点已被删除:用删除时确认框里的命令卸载 |
| 连接被拒绝、超时 | 节点到 hub 的网络不通:域名解析、防火墙;或节点只有 IPv6 而 hub 没有 IPv6 入口,见下文只有 IPv6 的机器能装吗 |
| 握手时 HTTP 400 等错误 | 反代没转发 WebSocket 升级头,见反向代理 |
--iface: … is not an interface name,agent 一启动就退出 | /opt/monitor/agent.env 里 MONITOR_IFACE 的写法不对:完整网卡名,逗号分隔,- 开头表示排除,不能有空格。改好后重启 agent |
UnknownIssuer | hub 的证书不是公共 CA 签发的,见下一条 |
agent 日志里 UnknownIssuer
hub 用的是自签证书或私有 CA 签发的证书。agent 只认编译进去的公共根证书,不读系统的信任库,所以把 CA
装进 /usr/local/share/ca-certificates 再执行 update-ca-certificates 对它无效:同一台机器上 curl 和
install.sh 都正常,只有 agent 连不上,日志里每隔几秒一条 UnknownIssuer。
给 hub 换一张公共 CA 签发的证书,Let's Encrypt 或 Cloudflare 的边缘证书都可以。内网部署确实没有域名的,另一条路是让 agent 用明文连 hub:同一台机器走回环地址;其他机器在安装命令里把 --server 写成 http://
地址并加 --insecure。代价是 token、每条上报和安装时下载的二进制都明文传输,链路上的人能读到 token,也能替换以 root 执行的安装脚本和二进制,所以只在可信的内网里这样做。
节点隔一阵掉线,又自己回来
反代的读写超时太短,或没转发 WebSocket 头。按反向代理的第 1 项检查。
关机后多久显示离线
agent 正常退出、机器正常关机或重启时,连接立即断开,节点马上显示离线。断电、断网时连接不会正常关闭:hub 每 30 秒发一次心跳,连续 120 秒收不到任何数据才断开,所以最慢 150 秒显示离线。离线通知还要再等一个宽限期,见通知。
只有 IPv6 的机器能装吗
能。agent 二进制由 hub 转发,节点不需要访问 GitHub,只要能连上 hub。
hub 只有 IPv4 而节点只有 IPv6 时,给 hub 加一个 IPv6 入口,以下任选一种:
- 给 hub 所在机器配一个 IPv6 地址,多数 VPS 免费提供
/64 - 套一个双栈 CDN
- 用 Cloudflare 隧道:隧道由源站向外建立,源站只有 IPv4 也能得到双栈入口
节点地址是内网 IP,或者国家不对
在编辑节点里手动填 IPv4、IPv6 或国家/地区,留空恢复自动。地址和国家是怎么选出来的、哪些部署会判断错,见节点。
数字
内存、硬盘和别的面板对不上
面板的数字对齐 free 和 df,登上机器执行一遍就能核对。已用内存是 MemTotal - MemAvailable,和 free
的 used 列一致;不少采集工具把 page cache 也算作已用,跑了几天的机器在那些工具里看起来内存快满了。LXCFS 容器里 MemAvailable 偶尔大于 MemTotal,这时按 MemTotal - MemFree 算,free 也是这样(agent 1.2.2 起,之前报 0)。
磁盘总量不含被 agent 服务的沙箱遮住的挂载点(例如单独分区的 /home),agent 启动时会在日志里逐个列出。
总流量和商家对不上
- agent 装上之前的流量算不进来
- 机器重启时,关机前最后一次上报之后的流量会丢掉,平时只有几秒;hub 连不上的期间重启的,丢的是从连不上到重启这一段
- 面板里的每月重置日或计算方式和商家的不一致
- 软路由、PVE 宿主机这类转发流量的机器,同一个包经过两块网卡,默认规则会算两遍,见流量统计
agent 掉线期间的流量会在重连后补上,这是有意的:这段时间内核照样在计数。
今日流量到点不归零
Docker 部署没设 TZ,按 UTC 切换日期,见 Docker 部署。
过了到期日,节点还显示已过期
只有在线的节点会自动续期,在 hub 跨日后几秒内完成;离线期间过期、之后又连上的,等到下一个整点。付款周期为「一次性」的不续期。Docker 部署没设 TZ 时,东八区要到早上 8 点才跨日。规则见节点。
hub 1.2.0 及更早按访客浏览器的时区算,在线节点每个周期会先显示几个小时的「已过期」,升级即可。
维护
怎么升级
| 对象 | 做法 |
|---|---|
| hub(一键脚本) | 重跑脚本,见安装 hub |
| hub(Docker) | 拉新镜像、重建容器,见 Docker 部署 |
| agent | 在每台机器上执行一条 --upgrade 命令,所有机器共用,见批量升级 agent |
| 主题 | 主题页卡片上的「从 GitHub 更新」 |
面板的更新页显示 hub 和 agent 是否有新版本,有新版本时导航上的「更新」带一个小圆点。版本信息在管理员打开面板时向 GitHub 查询,缓存 6 小时。不想看到小圆点,在这一页底部关掉「更新提醒」。
搬到另一台机器
导出备份、在新 hub 上导入,再把域名指过去,见数据与备份。
数据库越来越大
调小保留天数,再在数据页点回收空间,见数据与备份。
范围
支持 Windows、macOS 吗
不支持,也不打算支持。agent 直接读 /proc 和 statvfs,换来的是准确的数字和很小的二进制;支持其他系统等于重写整个采集部分。