文档类型:使用手册 关联软件:FoxAgent 更新于 2026-09-27

使用手册

日常怎么用、常见操作怎么做。

日常怎么用、常见操作怎么做

1. 界面总览

FoxAgent 没有常驻窗口、没有托盘图标,它对外呈现为四个入口,理解这四处即理解了它的全貌:

区域 位置 用途
命令行 fox-agent.exe 运行内核、管理插件、管理服务、自检、查看版本
Web 控制台 http://127.0.0.1:42101/console/ 看状态、管插件、看能力清单、按参数声明试跑任意命令
命令接口 POST /(HTTP 42101)、TCP 42102、UDP 42103 下发控制命令
查询与管理接口 GET /health、GET /capabilities、GET /admin/*、GET /blob/{id} 查看状态、能力、插件清单、命令清单;下载插件上报的大对象(截图 / 文件 / 日志导出)

配置文件位于数据目录(见第 5 节),核心配置项见第 3 节与《高级配置》。

1.1 Web 控制台

浏览器打开 http://127.0.0.1:42101/console/ 即可使用;页面由内核内嵌(go:embed),不额外起进程、不额外占端口,换台终端也无须部署前端。远端终端把地址换成 http://<终端IP>:42101/console/ 即可(对应端口需放通)。

页面分四块:

区块 内容
状态概览 内核版本、运行时长、插件「就绪 / 总数」、能力「可用 / 声明」、已注册命令数、三端口监听地址、当前认证方式
插件 插件表(ID / 版本 / 会话域 / 状态 / 启用 / PID / 命令数 / 能力数 / 目录),支持启动、停止、启用、禁用、探测、卸载、重新加载,以及上传或拖拽目录安装新插件
能力清单 可折叠的表格:能力名、所属插件、会话域、当前是否可用、不可用原因
功能测试 选一条命令 → 表单按该命令的参数声明自动生成 → 点「执行」看内核的原始返回

「功能测试」的价值在于不需要记参数名与取值范围:参数项、必填与否、数值上下限、枚举选项、说明文字全部来自插件自己上报的声明,插件改了参数,页面刷新后表单自动跟着变。响应区原样展示内核返回的 JSON(成功绿框、失败红框),便于直接对照协议定位问题。

关于令牌:控制台页面本身是静态资源、不含数据,所以能直接打开;但页内每个管理请求都要求令牌。管理接口不接受「本机来源免认证」——否则任意网页都能借浏览器发起跨站请求来操纵插件。首次进入时把 config.json 里的 auth.token 粘进登录框即可,令牌会存在浏览器本地。

2. 逐功能操作

2.1 电源

命令 参数 说明
power.off mac, delay, message 关机(可延迟,delay 秒 0–600,message 为关机前提示)
power.reboot mac, delay, message 重启(可延迟,参数同 power.off)
power.abort mac 取消已计划但尚未执行的关机 / 重启,返回 aborted
power.uptime mac 查询运行时长,返回 seconds、boot_time
power.suspend mac, mode 进入睡眠(sleep,默认)或休眠(hibernate)
  • 入口:命令接口,{"cmd":"power.reboot","mac":"aa:bb:cc:dd:ee:ff"}
  • 结果:power.off / power.reboot 无 data,status 为 success 表示已下发关机 / 重启
  • 注意:后台常驻即可完整工作,服务态同样可用

2.2 系统音量

命令 参数 响应 data
volume.get mac {"volume":50,"muted":false}
volume.set mac, value(0–100) -
volume.mute mac, mode(on/off/toggle,默认 toggle) {"muted":true}
volume.up mac, step(1–50,默认 5) {"volume":55}
volume.down mac, step(1–50,默认 5) {"volume":45}

越界(如 value=150)返回参数非法。

2.3 屏幕开关

命令 参数 说明
screen.off mac 关闭显示器(DPMS 待机)
screen.on mac 打开显示器
screen.lock mac 锁定当前会话(保持登录,需重新输入凭据解锁)

2.4 键盘

命令 参数 说明
input.key.tap mac, key, mods 模拟按键,支持组合键
input.key.type mac, text 输入文本
input.key.hold mac, key, duration, mods 按住按键一段时间后松开(duration 毫秒,默认 500)
  • 组合键示例:{"cmd":"input.key.tap","mac":"all","key":"tab","mods":["ctrl","shift"]} 表示 Ctrl+Shift+Tab
  • 支持的按键:a–z、0–9、f1–f12、enter/space/tab/esc/backspace/delete/insert/home/end/pageup/pagedown/up/down/left/right/capslock/printscreen 等;修饰键 ctrl/shift/alt/win,均大小写不敏感。

2.5 鼠标

命令 参数 说明
input.mouse.move mac, x, y 移动到绝对坐标
input.mouse.move_relative mac, dx, dy 相对当前位置移动
input.mouse.click mac, button, count 单击,left/right/middle(默认 left),count 1–3(默认 1)
input.mouse.scroll mac, scroll, horizontal 滚动滚轮,scroll 为垂直量(必填),horizontal 为可选水平量
input.mouse.drag mac, from_x, from_y, to_x, to_y, button, duration 从起点拖拽到终点(duration 毫秒,默认 300)
input.cursor mac 查询光标位置,返回 x、y
input.screen_size mac 查询主显示器分辨率,返回 width、height

2.6 剪贴板

命令 参数 响应 data
clipboard.write mac, text -
clipboard.read mac {"text":"剪贴板内容"}
clipboard.clear mac -
clipboard.format mac {"formats":["CF_UNICODETEXT"]}

2.7 设备发现

无命令,仅应答 UDP 发现请求。请求 / 响应格式见《集成与 API》;探测到的 MAC 为本机真实物理网卡(自动排除虚拟网卡)。

2.8 磁盘用量

命令 参数 响应 data
disk.list mac JSON 字符串:各分区的总量 / 已用 / 使用率,使用率超 90% 的分区附带告警标记

只读命令,无参数可调。用于巡检终端盘满情况,常与定时重启(power.reboot)配合排查「机器越用越慢」。

2.9 屏幕截图

命令 参数 响应 data
screen.capture mac, display, format, quality, scale JSON 字符串:图像尺寸与 blob_id
参数 取值 默认
display 显示器序号(从 0 起);-1 表示把所有屏幕拼接成一张 0
format png(无损、体积大)/ jpeg(有损、体积小) png
quality JPEG 质量 1–100,仅 format=jpeg 时生效 85
scale 缩放比例 0.1–1.0,弱网下可缩小传输量 1.0

画面本身不放在命令响应里:命令只返回 blob_id,需再经 GET /blob/{id} 下载(需认证),说明见 2.11 末尾。

2.10 文件读取(只读)

命令 参数 响应 data
file.list mac, path, limit JSON 字符串:目录条目(目录优先、按名称排序)与统计
file.stat mac, path JSON 字符串:元信息;体积 ≤16MB 时附带 sha256
file.read mac, path, encoding, max_bytes JSON 字符串:文件内容,超限时改为大对象引用
参数 取值 默认
path 绝对路径,必须落在白名单内 无(必填)
limit file.list 返回条目数上限 1–2000 200
encoding text(按 UTF-8 文本返回)/ base64(取二进制用) text
max_bytes file.read 读取字节上限 1–8388608 1048576(1MB)
  • 白名单由 plugins.config["fox.file"].roots 配置,为空即拒绝一切访问(见《高级配置》第 3 节)。
  • 内容超过 512KB 时不内联,改为返回 blob_id,经 GET /blob/{id} 下载。
  • 本插件只读:没有写入、删除、改名命令。

2.11 日志查看(只读)

命令 参数 响应 data
log.list mac JSON 字符串:日志文件清单(含体积与修改时间)
log.tail mac, file, lines, filter JSON 字符串:尾部行与统计
log.export mac, file JSON 字符串:整份文件的 blob_id 与体积
参数 取值 默认
file 日志文件绝对路径,必须落在白名单内(可先用 log.list 取) 无(必填)
lines log.tail 读取的尾部行数 1–2000 200
filter 可选关键字,只在取到的尾部行中保留包含该串的行,最长 128 字符 无
  • 白名单由 plugins.config["fox.log"].paths 配置,默认指向内核自身日志目录 <数据目录>/logs,装上即可用;为空即拒绝一切访问。
  • log.export 单文件上限 60MB,超出直接拒绝。
  • 本插件只读:没有删除或改写日志的命令。
  • 大对象通道说明:screen.capture、file.read(超 512KB)、log.export 的正文都不在命令响应里,只返回 blob_id;需再请求 GET /blob/{id} 流式下载(需令牌或证书)。原因是内核读取插件输出有单行 1MB 上限,大内容必须走独立通道。

2.12 插件管理

命令行方式:

fox-agent plugin list              列出已发现插件
fox-agent plugin install <路径>     安装插件(需管理员 / root)
fox-agent plugin remove        卸载插件(需管理员 / root)
fox-agent plugin enable        启用插件(改写 plugin.json,持久)
fox-agent plugin disable       禁用插件(改写 plugin.json,持久)
fox-agent plugin start         启动插件(仅本次运行,需内核在线)
fox-agent plugin stop          停止插件(仅本次运行,需内核在线)
fox-agent plugin reload            通知内核重新加载插件
fox-agent plugin doctor        探测指定插件的能力可用性
fox-agent doctor                   内核自检

enable/disable 是持久的(改配置文件),start/stop 只对本次运行生效。

Web 控制台方式(等价,但不用记插件 ID):打开 http://127.0.0.1:42101/console/,插件表每行末尾就是「启动 / 停止 / 启用或禁用 / 探测 / 卸载」按钮;插件表上方的「安装插件…」按钮(或把插件目录直接拖到虚线框里)等价于 plugin install,「重新加载插件」等价于 plugin reload。

2.13 服务管理(Windows)

fox-agent service status      查看服务状态(无需管理员权限)
fox-agent service start       启动服务
fox-agent service stop        停止服务
fox-agent service install     注册服务并设为「自动」启动(需管理员)
fox-agent service uninstall   停止并删除服务(需管理员)

安装包已代做注册与首次启动,本节命令用于日常起停与排障。服务异常退出时由系统按恢复策略自动重启,无需人工介入。

3. 参数说明

参数 含义 取值范围 默认值
cmd 命令名 见第 2 节命令表 无(必填)
mac 目标机器 MAC;all 表示广播 aa:bb:cc:dd:ee:ff / aa-bb-.. / aabb.. / all 无(必填)
token 访问令牌 配置文件 auth.token 无(非回环必填;高危命令即便来自回环也必填)
value 数值参数 音量 0–100 无
mode 枚举参数 sleep/hibernate;on/off/toggle 依命令(多为默认值)
text 文本参数 键盘输入 / 剪贴板内容 无
key / mods 按键与修饰键 见 2.4 无
x / y 鼠标屏幕坐标 整数 无
button 鼠标按键 left/right/middle left
scroll 滚轮格数 整数,正=上滚 无
path / file 文件或目录路径(file.* / log.*) 绝对路径,须在插件白名单内 无(必填)
limit 目录条目数上限(file.list) 1–2000 200
encoding 文件内容编码(file.read) text / base64 text
max_bytes 读取字节上限(file.read) 1–8388608 1048576
lines 日志尾部行数(log.tail) 1–2000 200
filter 日志关键字过滤(log.tail) 字符串,最长 128 字符 无
display 显示器序号(screen.capture) -1(拼接全部屏幕)/ 0 起整数 0
format 图像格式(screen.capture) png / jpeg png
quality JPEG 质量(screen.capture) 1–100 85
scale 截图缩放比例(screen.capture) 0.1–1.0 1.0

MAC 守卫语义:all 放行;与本机 MAC 匹配放行;不匹配返回 skipped(不执行);本机 MAC 探测失败返回 error(不冒险执行)。

4. 日常维护动作

周期 动作
每日 无需人工干预,程序常驻自管;Windows 下服务异常退出会自动重启
每周 fox-agent service status 确认服务在运行;抽查一台终端的 /health 与 /capabilities,确认在线与能力齐全
每周 fox-agent plugin list 核对插件状态,确认无 Failed;或打开控制台直接看插件表
变更前 修改配置后 fox-agent doctor 自检,再 fox-agent service stop / start 重启服务
升级时 覆盖安装 → 访问 /capabilities 复核插件全部加载

5. 数据与文件位置

类别 Windows Linux
安装目录(含官方插件) C:Program FilesFoxAgent /opt/FoxAgent/
数据目录(配置 / 令牌 / 第三方插件) %ProgramData%FoxAgent /var/lib/FoxAgent/
配置文件 %ProgramData%FoxAgentconfig.json /var/lib/FoxAgent/config.json
服务运行日志 %ProgramData%FoxAgentlogskernel.log(超 8 MiB 轮转为 kernel.log.1) /var/lib/FoxAgent/logs/kernel.log(服务态运行时有)
TLS 证书 %ProgramData%FoxAgent ls /var/lib/FoxAgent/tls/
第三方插件目录 %ProgramData%FoxAgentplugins /var/lib/FoxAgent/plugins/

配置文件权限被收紧为仅所有者可读写;卸载安装包不会删除数据目录,避免升级后认证信息丢失。

文档解决不了的,直接问我们

把现场条件和使用场景说清楚,我们的工程师会给出明确结论,而不是只发一份资料链接。