OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  computer-use: 为 Linux 服务器与 VPS 提供完整的桌面远程操作能力

computer-use: 为 Linux 服务器与 VPS 提供完整的桌面远程操作能力

 
  infrastructure ·  2026-02-01 07:50:43 · 3 次点击  · 0 条评论  

name: computer-use
description: 为无头 Linux 服务器提供完整的桌面计算机使用功能。基于 Xvfb + XFCE 虚拟桌面,配合 xdotool 实现自动化。提供 17 种操作(点击、输入、滚动、截图、拖拽等)。与 OpenClaw 的浏览器工具不同,此工具在 X11 层面运行,网站无法检测到自动化。包含 VNC 用于实时查看。
version: 1.2.1


计算机使用技能

为无头 Linux 服务器提供完整的桌面 GUI 控制。创建一个虚拟显示器(Xvfb + XFCE),使你可以在 VPS/云实例上运行和控制桌面应用程序,无需物理显示器。

环境

  • 显示器:99
  • 分辨率:1024x768 (XGA,Anthropic 推荐)
  • 桌面环境:XFCE4 (极简版 — 仅 xfwm4 + 面板)

快速设置

运行设置脚本以安装所有组件(systemd 服务、无闪烁 VNC):

./scripts/setup-vnc.sh

此脚本将安装:
- 在 :99 上运行的 Xvfb 虚拟显示器
- 极简 XFCE 桌面 (xfwm4 + 面板,无 xfdesktop)
- 带有稳定性标志的 x11vnc
- 用于浏览器访问的 noVNC

所有服务将在启动时自动运行,并在崩溃时自动重启。

操作参考

操作 脚本 参数 描述
screenshot screenshot.sh 截取屏幕 → base64 PNG
cursor_position cursor_position.sh 获取当前鼠标 X,Y 坐标
mouse_move mouse_move.sh x y 移动鼠标到指定坐标
left_click click.sh x y left 在坐标处左键单击
right_click click.sh x y right 右键单击
middle_click click.sh x y middle 中键单击
double_click click.sh x y double 双击
triple_click click.sh x y triple 三击 (选择行)
left_click_drag drag.sh x1 y1 x2 y2 从起点拖拽到终点
left_mouse_down mouse_down.sh 按下鼠标按钮
left_mouse_up mouse_up.sh 释放鼠标按钮
type type_text.sh "文本" 输入文本 (50 字符分块,12ms 延迟)
key key.sh "组合键" 按下按键 (回车, ctrl+c, alt+F4)
hold_key hold_key.sh "按键" 秒数 按住按键指定时长
scroll scroll.sh 方向 数量 [x y] 上下/左右滚动
wait wait.sh 秒数 等待后截图
zoom zoom.sh x1 y1 x2 y2 截取指定区域截图

使用示例

export DISPLAY=:99

# 截图
./scripts/screenshot.sh

# 在坐标处点击
./scripts/click.sh 512 384 left

# 输入文本
./scripts/type_text.sh "Hello world"

# 按下组合键
./scripts/key.sh "ctrl+s"

# 向下滚动
./scripts/scroll.sh down 5

工作流程模式

  1. 截图 — 始终从查看屏幕开始
  2. 分析 — 识别 UI 元素和坐标
  3. 操作 — 点击、输入、滚动
  4. 截图 — 验证结果
  5. 重复

提示

  • 屏幕分辨率为 1024x768,原点 (0,0) 在左上角
  • 在文本框中输入前,先点击以获取焦点
  • 在浏览器中使用 ctrl+End 跳转到页面底部
  • 大多数操作会在 2 秒延迟后自动截图
  • 长文本会被分块处理 (50 字符),按键延迟为 12ms

实时桌面查看 (VNC)

通过浏览器或 VNC 客户端实时查看桌面。

通过浏览器连接

# SSH 隧道 (在本地机器上运行)
ssh -L 6080:localhost:6080 你的服务器

# 在浏览器中打开
http://localhost:6080/vnc.html

通过 VNC 客户端连接

# SSH 隧道
ssh -L 5900:localhost:5900 你的服务器

# 将 VNC 客户端连接到 localhost:5900

SSH 配置 (推荐)

将以下内容添加到 ~/.ssh/config 以实现自动隧道转发:

Host 你的服务器
  HostName 你的服务器IP
  User 你的用户名
  LocalForward 6080 127.0.0.1:6080
  LocalForward 5900 127.0.0.1:5900

然后只需 ssh 你的服务器,VNC 即可用。

系统服务

# 检查状态
systemctl status xvfb xfce-minimal x11vnc novnc

# 如果需要,重启
sudo systemctl restart xvfb xfce-minimal x11vnc novnc

服务链

xvfb → xfce-minimal → x11vnc → novnc
  • xvfb: 虚拟显示器 :99 (1024x768x24)
  • xfce-minimal: 运行 xfwm4+面板的看门狗,会终止 xfdesktop
  • x11vnc: 带有 -noxdamage 标志以提升稳定性的 VNC 服务器
  • novnc: 带有心跳机制以确保连接稳定性的 WebSocket 代理

启动应用程序

export DISPLAY=:99

# Chrome — 仅在内核缺少用户命名空间支持时使用 --no-sandbox。
# 检查: cat /proc/sys/kernel/unprivileged_userns_clone
#   1 = 沙盒可用,请勿使用 --no-sandbox
#   0 = 沙盒失败,需要 --no-sandbox 作为后备方案
# 在不必要时使用 --no-sandbox 会导致不稳定和崩溃。
if [ "$(cat /proc/sys/kernel/unprivileged_userns_clone 2>/dev/null)" = "0" ]; then
    google-chrome --no-sandbox &
else
    google-chrome &
fi

xfce4-terminal &                # 终端
thunar &                        # 文件管理器

注意:Snap 版浏览器 (Firefox, Chromium) 在无头服务器上存在沙盒问题。请改用 Chrome .deb 包:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get install -f

手动设置

如果你更喜欢手动设置而不是运行 setup-vnc.sh

# 安装软件包
sudo apt install -y xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify

# 运行设置脚本 (生成 systemd 服务文件,屏蔽 xfdesktop,启动所有服务)
./scripts/setup-vnc.sh

如果你更喜欢完全手动设置,setup-vnc.sh 脚本会内联生成所有 systemd 服务文件 — 请阅读该脚本以获取确切的服务定义。

故障排除

VNC 显示黑屏

  • 检查 xfwm4 是否在运行:pgrep xfwm4
  • 重启桌面:sudo systemctl restart xfce-minimal

VNC 闪烁/闪屏

  • 确保 xfdesktop 被屏蔽 (检查 /usr/bin/xfdesktop)
  • xfdesktop 在 Xvfb 上因清除→绘制循环而导致闪烁

VNC 频繁断开连接

  • 检查 noVNC 是否带有 --heartbeat 30 标志
  • 检查 x11vnc 是否带有 -noxdamage 标志

x11vnc 崩溃 (SIGSEGV)

  • 添加 -noxdamage -noxfixes 标志
  • Xvfb 上的 DAMAGE 扩展会导致崩溃

要求

setup-vnc.sh 安装:

xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor