fleetdfleetd
指南
设计
  • English
  • 简体中文
GitHub
指南
设计
  • English
  • 简体中文
GitHub
  • 介绍
  • 快速开始
  • 部署服务端
  • 接入机器
  • 命令和终端
  • 客户端更新
  • 告警
  • 配置参考
  • 常见问题

介绍

fleetd 是一个自己部署的服务器、软路由管理工具。一个服务端负责收集监控数据、发出告警、提供网页后台;每台被管理的机器上运行一个小客户端。

和其他工具的区别

远程管理工具通常完全信任控制面板:谁控制了面板,谁就能在所有机器上以 root 执行任何命令。fleetd 的设计目标是服务端被攻破也无法执行命令:

  • 命令在你的浏览器里用 Ed25519 私钥签名。这把私钥不能导出,也不会发到服务端。
  • 每个客户端自己保存信任的公钥列表和权限级别,服务端改不了。
  • 客户端更新必须用发布私钥签名,这把私钥离线保存在你自己的电脑上。

服务端只负责转发签过名的消息和保存监控数据。完整的威胁分析见设计文档(英文)。

工作原理

浏览器 ──HTTPS──▶ fleetd-server ──▶ PostgreSQL
                      ▲
                      │ WebSocket + Noise(客户端主动连接)
      ┌───────────────┼────────────────┐
 fleetd-agent    fleetd-agent     fleetd-agent
  1. 运行 fleetd-server 和 PostgreSQL,前面放一个 HTTPS 反向代理。
  2. 在每台机器上执行后台给出的一条安装命令。客户端主动连上服务端,等待你批准。
  3. 批准后每 10 秒上报一次监控数据。在你给它的权限范围内,可以对它执行签名命令、打开终端。

环境要求

部分需要
服务端Linux(或 Docker)、PostgreSQL 13+;要从外网访问的话,需要一个配好 HTTPS 的域名
客户端x86_64 或 arm64 的 Linux(systemd),或 OpenWrt / iStoreOS;能访问到服务端
管理员最新版 Chrome、Edge、Firefox 或 Safari(需要 WebCrypto 的 Ed25519)

下一步

  • 快速开始:用 Docker 在本机两分钟试用。
  • 部署服务端:正式部署。
在 GitHub 上编辑此页
最后更新: 2026/11/3 11:50
贡献者: weiyi
Next
快速开始