Computer Use
2026-03-26
新闻来源:网淘吧
围观:32
电脑广告
手机广告
计算机使用技能
为无头Linux服务器提供完整的桌面图形界面控制。创建虚拟显示器(Xvfb + XFCE),使您能够在VPS/云实例上运行和控制桌面应用程序,无需物理显示器。
环境
- 显示:
:99 - 分辨率: 1024x768(XGA,Anthropic推荐)
- 桌面: XFCE4(最小化 — 仅包含xfwm4 + 面板)
快速设置
运行设置脚本以安装所有组件(systemd服务、无闪烁VNC):
./scripts/setup-vnc.sh
这将安装:
- 在 :99 上安装 Xvfb 虚拟显示器
:99 - 最小化XFCE桌面(xfwm4 + 面板,无xfdesktop)
- 带有稳定性标志的x11vnc
- 用于浏览器访问的noVNC
所有服务均在启动时自动启动,并在崩溃时自动重启。
操作参考
| 操作 | 脚本 | 参数 | 描述 |
|---|---|---|---|
| 截图 | 截图.sh | — | 捕获屏幕 → base64 PNG |
| 光标位置 | 光标位置.sh | — | 获取当前鼠标的X,Y坐标 |
| 鼠标移动 | 鼠标移动.sh | x y | 将鼠标移动到指定坐标 |
| 左键点击 | 点击.sh | x y 左键 | 在指定坐标处左键点击 |
| 右键点击 | 点击.sh | x y 右键 | 右键点击 |
| 中键点击 | click.sh | x y 中键 | 中键点击 |
| double_click | click.sh | x y 双击 | 双击 |
| triple_click | click.sh | x y 三击 | 三击(选择行) |
| left_click_drag | drag.sh | x1 y1 x2 y2 | 从起点拖拽到终点 |
| left_mouse_down | mouse_down.sh | — | 按下鼠标按钮 |
| left_mouse_up | mouse_up.sh | — | 释放鼠标按钮 |
| 类型 | type_text.sh | "文本" | 输入文本(50字符块,12毫秒延迟) |
| 按键 | key.sh | "组合键" | 按下按键(回车、ctrl+c、alt+F4) |
| 保持按键 | hold_key.sh | "按键" 秒 | 按住按键持续指定时间 |
| 滚动 | scroll.sh | 方向 数量 [x y] | 向上/下/左/右滚动 |
| 等待 | wait.sh | 秒 | 等待然后截图 |
| 缩放 | 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
工作流程模式
- 截图— 始终从查看屏幕开始
- 分析— 识别界面元素和坐标
- 操作— 点击、输入、滚动
- 截图— 验证结果
- 重复
提示
- 屏幕分辨率为1024x768,原点(0,0)位于左上角
- 在文本框中输入前需先点击获取焦点
- 使用
Ctrl+End可在浏览器中快速跳转至页面底部 - 大多数操作会在2秒延迟后自动截图
- 长文本将分块处理(每块50字符),按键间隔为12毫秒
实时桌面查看(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+panel 的看门狗,会终止 xfdesktop
- x11vnc:VNC服务器,带
-noxdamage 参数为了稳定性 - 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 上由于 clear→draw 循环会导致闪烁
VNC 频繁断开连接
- 检查 noVNC 是否带有
--heartbeat 30标志 - 检查 x11vnc 是否带有
-noxdamage标志
x11vnc 崩溃(SIGSEGV)
- 添加
-noxdamage -noxfixes标志 - DAMAGE 扩展在 Xvfb 上会导致崩溃
要求
由setup-vnc.sh安装:
xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify文章底部电脑广告
手机广告位-内容正文底部
上一篇:Copywriting
下一篇:Oracle


微信扫一扫,打赏作者吧~