晚上,我看着屏幕里那个自己动的鼠标,愣了五秒钟。
一个快50岁的人,在服务器里养了一只会自己上网的"龙虾"。
这不是科幻片,这是今天下午真实发生的事。
一、我为什么要折腾这件事
说实话,学AI这么久,我一直有个不爽的地方:AI 好像只会"动嘴"。
你问它什么,它回答得头头是道。你让它写代码,它写得比我还快。但你让它真的"动手"去做一件事,比如打开一个网页、读几条消息、点几个按钮,它就卡住了。
我想让 Hermes(我的 AI Agent)能自己操作浏览器。比如打开推特,看看今天有什么热点,读一读评论,甚至帮我发条消息。
不是为了炫技,是为了让 AI 从"顾问"变成"执行者"。
如果你也在学 AI,可能懂这种感觉:看了无数教程,总觉得隔了一层。AI 说得天花乱坠,最后落地还是要你自己一件一件去干。
我想打破这层隔板。
二、三件套:Tailscale + VNC + Chrome
要达到"AI 能操控浏览器,我也能随时介入"的效果,需要三个东西配合:
Tailscale:给服务器和我的电脑拉一根加密的虚拟网线,让它们像在同一间办公室里。
TigerVNC:把服务器的桌面画面推送到我的电脑上,让我能看见浏览器在干什么。
Chrome:真正干活的那个,只不过要开一个特殊的调试端口(CDP),让 AI 能发指令控制它。
这三个东西装起来不算复杂,按步骤执行命令就行。真正的坑,藏在细节里。

三、第一个坑:Chrome 136 的"沉默陷阱"
装完 Chrome,我习惯性地测试一下调试端口通不通:
curl localhost:9222
返回空。
什么都没有。不是报错,不是拒绝连接,就是一片空白。
我排查了快半小时。防火墙?端口没绑定?配置文件写错了?一个个排除,都没问题。
最后查资料才发现:Chrome 136 开始,Google 出于安全考虑,禁止在默认用户数据目录上启用远程调试。如果你不显式指定一个 --user-data-dir=/某个路径,--remote-debugging-port=9222 这个参数会被静默忽略。
什么叫"静默忽略"?就是 Chrome 照启不误,也不报错,但调试端口根本没开。你查进程,Chrome 在跑;你查端口,9222 没有;你 curl,返回空。
这种坑最折磨人。因为它不告诉你错在哪。
最后解决办法很简单:在启动参数里加上 --user-data-dir=/root/.chrome-debug,指定一个非默认路径。再测,通了。
这个小插曲让我想到一句话:很多时候你以为自己没学会,其实是被版本更新坑了。
四、第二个坑:VNC 连上,但黑屏
解决了 Chrome 的问题,我兴冲冲打开 VNC Viewer,输入 Tailscale IP,连接成功。
然后,黑屏。
一片漆黑,什么都没有。
我又排查了十分钟,最后发现是 ~/.vnc/xstartup 这个启动脚本的问题。脚本最后一行必须是前台运行的进程(比如 exec fluxbox),如果写成后台启动(加了 &),VNC 会以为会话已经结束,就直接退出了。
改了一行代码,重连,桌面出来了。一个干干净净的 fluxbox 桌面,右上角开着 Chrome 窗口。
那一刻,有点像小时候修好了坏掉的收音机,拧开旋钮,音乐响起来的感觉。
五、高潮:鼠标自己在动
环境搭好了,我给 Hermes 下了一个指令:
"打开推特首页,找到发推按钮。"
然后我打开 VNC Viewer,盯着屏幕。
十秒钟后,鼠标开始移动。不是我在动,是 AI 在动。
它先点了一下地址栏,输入网址,页面加载出来。然后鼠标滑到右上角,停留了一秒,点击。
整个过程中,我坐在椅子上,手没碰鼠标,但屏幕里的光标像被一只看不见的手操控着,精准地完成了每一步。
说实话,有点震撼,也有点吓人。
震撼的是,一个快五十岁的人,真的做到了让 AI 代替自己操作浏览器。吓人的是,这意味着什么?未来还会有多少"动手"的工作,可以被 AI 接管?
六、这件事到底能干什么
环境搭好之后,我脑子里冒出一堆应用场景:
第一,自动刷社交媒体。
让 AI 每天早上打开推特、公众号后台、小红书,把昨天的消息汇总成一份简报发给我。不用我一个个点开看。
第二,数据监控。
让 AI 定时浏览几个关注的网站,看看有没有新动态、新数据。比如竞品发布了什么功能,行业有什么新政策。变化了就提醒我。
第三,代替我做重复性的网页操作。
有些系统只有 Web 后台,每次操作都要点很多下。以后可以让 AI 帮我点,我只在关键决策点介入。
关键是:因为有 VNC,AI 搞不定的时候,我随时能接管。扫码登录、过验证码、处理异常,这些 AI 目前还做不到的事,我可以手动补上。
这就是现阶段最务实的方案:AI 做 90% 的重复劳动,人做 10% 的关键决策。
七、如果你也想试试,这几件事最重要
我知道看完前面的故事,有人会想:这看起来挺有意思,我能试试吗?
我的回答是:能,但别一上来就追求一步到位。我把整个流程拆成三步,你可以根据自己的情况决定走多远。
第一步:先让服务器和电脑"同框"
你需要一台云服务器(腾讯云、阿里云都可以,最低配就行),然后在服务器和你的电脑上分别安装 Tailscale。
Tailscale 是免费的个人版,装完之后,两台机器就像连了同一根网线,可以直接用内网 IP 互相访问。这一步是安全基础,后面所有操作都建立在它之上。
第二步:在服务器上装"桌面"和 Chrome
服务器默认没有图形界面,你需要装三样东西:
- TigerVNC
:让服务器有"桌面画面"可以推送给你看 - fluxbox
:一个很轻量的窗口管理器,不占资源 - Chrome
:一定要装桌面版,不是命令行版
装完之后,最关键的一步是写启动脚本(~/.vnc/xstartup)。这个脚本决定 VNC 连上后显示什么。脚本里要干两件事:启动 Chrome(带远程调试端口),然后启动 fluxbox。
Chrome 的启动参数里,这两个必须带:
--remote-debugging-port=9222
--user-data-dir=/root/.chrome-debug
第一个是开调试端口,让 AI 能连进来控制。第二个是 Chrome 136+ 的硬性要求,不带这个参数,调试端口会被静默忽略,你怎么测都是不通的。
第三步:用 VNC 连上去看一眼
在你的电脑上装 TigerVNC Viewer,输入服务器的 Tailscale IP 加端口号(比如 100.x.x.x:5901),就能看到服务器的桌面了。
如果连上去黑屏,检查一下 ~/.vnc/xstartup 的最后一行是不是 exec fluxbox。必须是前台运行,不能加 & 放后台,否则 VNC 以为会话结束了就直接退出。
两个最容易劝退的坑
坑一:curl localhost:9222 返回空
如果你确认 Chrome 在跑,但调试端口不通,九成是 --user-data-dir 没写。这个坑我卡了半小时,因为它不报错,就是沉默地失败。
坑二:VNC 连上黑屏
xstartup 的最后一行必须是前台进程。我当初写成后台启动,结果连上去一片漆黑,排查了十分钟才发现。
我的建议
如果你之前没玩过 Linux,建议先只做到"VNC 连上能看到 Chrome"这一步。光是走到这里,你对"远程桌面""内网穿透""调试端口"这些概念的理解,就已经上了一个台阶。
等这一步跑通了,再让 AI 接管也不迟。
八、给同龄人的三句话
折腾完这一整套,有三句话想送给和我一样在学 AI 的中年人。
第一句:不要被版本号吓住。
Chrome 136 的新规,让我卡了半小时。但换个角度,如果我不去试,我永远不知道这个坑存在。技术永远在变,坑永远在新,但解决坑的能力会越攒越多。
第二句:AI 不是来替代你的,是来放大你的。
有人担心 AI 太强了,人没用了。但今天我反而觉得,AI 越强,人的判断和决策越值钱。AI 能帮我点鼠标,但"点哪里、为什么点、点了之后怎么处理",还是我说了算。
第三句:只要你去做,不管做得好不好,都是一种成功。
这句话我说过好几次,但每经历一次从零到一,理解就深一层。今天下午我完全可以放弃,不就是一个浏览器自动化吗,有多大用?但如果放弃了,我就看不到鼠标自己动的那一刻。
有些东西,只有你做了,才知道它值不值得。
八、写在最后
在职场待了 20 年,从写 Java 代码到项目管理再到采购,我以为自己对"工具"已经很熟悉了。但 AI 这一轮,完全是一个新世界。
以前学一个工具,是为了提高效率。现在学 AI,是为了让工具自己动起来。
这个转变,我用了快半年才真正理解。
如果你也在学 AI,但总觉得"学了用不上",我的建议是:别只让 AI 动嘴,试着让它动手。
哪怕只是让 AI 帮你打开一个网页、读一条消息,那种"它在干活"的感觉,和你问它一个问题得到答案,完全不一样。
最后,我把今天搭建环境的完整步骤整理成了一份 SOP,包括每一步的命令、验证方法和 7 个常见问题的排查方案。如果你也想试试,可以在评论区留言"SOP",我发给你。
你学 AI 的过程中,有没有遇到过"明明按教程做了,就是不通"的坑?欢迎在评论区聊聊,让我知道我不是一个人。
我是壁虎何,47 岁从公司离职,正在 ALL in AI。这里记录一个中年人的学习过程和真实踩坑经历。如果你也在转型路上,关注我,一起往前走。
夜雨聆风