引言:当AI遇到验证码,谁来按下“确认键”?

在追求极致自动化的工作流中,我们往往希望Hermes一类的AI助手能像“打工人”一样,24小时不眠不休地替我们处理网页任务。

然而,现实往往是骨感的。现代网站的登录认证反爬机制卷到了极致,单纯让AI在服务器上开启Headless(无头)模式盲操,成功率低得可怜。

我们不得不面对的残酷事实:

验证类型 难度等级 AI 自动化成功率
短信验证码 30% - 50%
滑动验证码 ⭐⭐ 10% - 30%
点选验证 ⭐⭐⭐ < 10%
图形验证码 ⭐⭐⭐⭐ < 5%
人脸识别 ⭐⭐⭐⭐⭐ ≈ 0%

核心痛点: 如果AI在远程服务器上遇到了验证码,它无法把“图片”传给你,你也无法把“操作”传给它。这时候,你只能看着任务失败,然后回归手操作业,这完全违背了自动化的初衷。

现有方案的局限

Hermes官方提供了两种浏览器自动化方案:

  1. 商业云模式:效果好,但成本高(太氪金)。
  2. 本地Linux模式:要求用户在本地电脑安装Linux,这在中国用户普遍使用Windows作为主力机的环境下,显得格格不入,而且就算用上WSL,也有隐私泄露风险,极不安全。

我们的使用场景其实很简单: 我有一台Windows电脑(用来观察和Debug),我有一个云端hermes或者openclaw 助手(在云端linux服务器)。我希望服务器上的浏览器能“投屏”到我的Windows桌面上。如果遇到验证码,我能第一时间看到并手动输入,然后把控制权交还给AI。

解决方案:利用 X11 转发实现

要实现这一目标,我们需要利用Linux的图形界面底层协议——X11。简单来说,X11允许图形程序的“计算”和“显示”分离。我们可以让浏览器在Linux上跑,但把画面通过SSH隧道传输到Windows上显示。

以下是保姆级配置教程,只需三步。

第一步:本地 Windows 配置 (X11 服务器)

我们需要在Windows上安装一个X11服务器软件,用来接收Linux传来的画面。

1. 下载 VcXsrv 访问 VcXsrv 的 GitHub 发布页,下载最新版本的安装包。

  • 下载地址: VcXsrv Releases
  • 文件选择: 下载 vcxsrv-xxx.x64.exe

2. 安装与配置 (关键步骤) 安装过程很简单,一直点 “Next” 即可。安装完成后,通过开始菜单启动 XLaunch

在配置向导中,请严格按照以下步骤操作:

  • Step 1 (Multiple windows): 选择 “Multiple windows”,点击 Next。

  • Step 2 (Start no client): 选择 “Start no client”,点击 Next。

  • Step 3 (Extra settings): 这一步至关重要!必须勾选 “Disable access control” (禁用访问控制)。如果不勾选,Linux服务器将无法连接到你的Windows显示器。

    • (注:由于安全策略,这里建议仅在内网或信任环境下勾选)
  • 点击 Next → Finish。

3. 验证运行 配置完成后,任务栏会出现VcXsrv图标。你可以打开CMD,输入 netstat -an | findstr "6000",如果看到 0.0.0.0:6000 LISTENING,说明你的Windows已经准备好接收远程画面了。

第二步:SSH 客户端配置 (建立隧道)

为了让画面安全传输,我们需要在SSH连接中开启X11转发功能。

请根据你使用的SSH工具进行设置:

  • Tabby 用户:

    1. 打开 Settings (设置)。
    2. 找到 SSH Profiles (连接配置)。
    3. 在 “Terminal” 或 “SSH” 选项卡下,勾选 “X11 forwarding”
  • MobaXterm 用户: MobaXterm 默认支持,无需额外配置,它内置了X11服务器。

  • PuTTY 用户:

    1. 打开 Connection → SSH → X11。
    2. 勾选 “Enable X11 forwarding”
    3. (可选) 在 “X display location” 填入 localhost:0.0

连接服务器后,系统会自动设置环境变量 DISPLAY。你可以输入 echo $DISPLAY 检查,通常会显示为 localhost:10.0 或类似内容。

第三步:启动远程浏览器 (Linux端)

现在,一切准备就绪。在你的SSH终端中运行以下命令,启动一个支持远程显示的Chrome浏览器实例:

google-chrome \
--remote-debugging-port=9222 \
--user-data-dir=/tmp/chromium-session \
--no-sandbox \
--disable-gpu \
--display=$DISPLAY \
https://stock.51longterm.cn:9443

** 参数解析:**

  • --display=$DISPLAY: 这是最关键的参数,它告诉浏览器:“你的屏幕在SSH隧道的另一头(也就是我的Windows电脑上)”。
  • --no-sandbox: 在服务器环境下通常需要关闭沙盒以避免权限问题(生产环境请谨慎)。
  • --remote-debugging-port: 为Hermes提供连接接口。

如果一切顺利,一个Chrome浏览器窗口会突然弹出在你的 Windows 桌面 上!然后用/browse connect指令,让hermes接管这个浏览器。虽然它的内核在千里之外的Linux服务器上运行,但你可以在本地看到它的一举一动,看着AI怎么愉快地玩耍。

结语:

通过这套配置,我们成功构建了一个完美的工作流闭环:

  1. Hermes 在Linux服务器上指挥浏览器自动浏览网页。
  2. 当遇到图形验证码短信验证时,画面实时传输到你的Windows桌面。
  3. 作为“安全员”,手动完成验证步骤。
  4. 验证通过后,Hermes 检测到页面变化,继续接管后续的自动化任务。

一切都很完美,明天就用它来搬砖!


后台有朋友私信问如何安装google-chrome,我这里有deb安装包,请自行下载 :https://download.csdn.net/download/zhanggxlinux/92846611?spm=1001.2014.3001.5501

安装方法:

sudo apt install ./google-chrome-stable_current_amd64.deb
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐