常见问题
日志
journalctl -u fleetd-server -f # 服务端
journalctl -u fleetd-agent -f # systemd 系统上的客户端
logread -f -e fleetd # OpenWrt 上的客户端
新机器没有出现
- 看客户端日志。
handshake (wrong server key?)表示客户端配置里的server_key和服务端不一致,到「设置 → 服务端」复制正确的公钥。 rejected by the admin表示这台机器被拒绝过,到「设置 → 已拒绝的机器」解除。too many machines waiting for approval:先批准或拒绝已有的待批准机器。- 确认机器能访问到服务端:
curl -I https://fleetd.example.com/login。
批准了但没有数据
等待批准的客户端每分钟重试一次,所以批准后最多要等一分钟。
机器每隔几分钟掉线一次
通常是反向代理把空闲的 WebSocket 断开了。调大代理的读写超时(nginx 是 proxy_read_timeout 3600s)。服务端每 30 秒发一次心跳,超时设到一分钟以上就行。
登录不上
Too many failed sign-ins/ 登录失败次数过多:连续失败 5 次会锁定用户名和 IP 15 分钟,重启服务端也会清除。- 忘记密码:
fleetd-server -config /etc/fleetd/server.yaml admin-add <用户名>重设。 - 登录后马上又回到登录页:通过 HTTP 访问时会话 Cookie 不带
Secure,但有些浏览器在非 localhost 地址上仍会丢弃它。请用 HTTPS。
命令被拒绝
结果里会写原因:
| 提示 | 处理 |
|---|---|
signer is not in trusted_signers | 把浏览器的公钥加到客户端的 trusted_signers |
commands are disabled on this machine (permission: monitor) | 调高客户端配置里的 permission |
arbitrary commands require permission: full | 改成 full,或者定义一个白名单动作 |
command expired / issued in the future | 机器时钟偏差超过 2 分钟,检查 NTP |
| 这个浏览器还没有签名密钥 | 到「设置 → 签名密钥」生成 |
客户端更新失败
原因在「告警 → 历史记录」里:
release signature invalid:客户端配置里的release_key和签名用的不是同一把密钥。release … is not newer than …:用更高的VERSION重新编译。updates disabled: release_key not set:在客户端配置里加上release_key,或者用一键安装重新安装。
安装脚本报错
no amd64 release uploaded on the server?:先在「设置 → 客户端发布包」上传客户端。needs systemd or OpenWrt procd:不支持其他 init 系统,请自己用服务管理器运行客户端。run as root:在管道后面加 sudo,例如curl -fsSL … | sudo sh -s -- --permission full。