目录:

AI Agent 能搜索、能总结、能写代码,但有一件事它做不好:读你的互联网。你的 Twitter Timeline、你的 YouTube 推荐、你的 Hacker News 首页——这些个性化内容藏在登录态背后,普通的 API 调用拿不到。

OpenClaw 的远程浏览器方案解决了这个问题:在一台带桌面的 Ubuntu 服务器上运行真实浏览器,保存各大网站的登录信息,然后通过网络让 AI Agent 直接操控这个浏览器。AI 看到的就是你看到的。

整体架构

1
2
3
4
5
6
7
┌──────────────┐     Tailscale      ┌──────────────────┐
│ OpenClaw │◄──────────────────►│ Ubuntu Desktop │
│ Server │ (局域网) │ (带桌面系统) │
│ │ │ │
│ AI Agent │◄── autossh ───────►│ Chrome/Firefox │
│ (本地端口) │ (端口映射) │ (保存登录态) │
└──────────────┘ └──────────────────┘

核心思路很简单:

  1. Ubuntu 桌面服务器运行真实浏览器,手动登录各大网站并保存 Cookie
  2. Tailscale 把 OpenClaw 服务器和 Ubuntu 连成局域网
  3. autossh 将 Ubuntu 上的浏览器端口映射到 OpenClaw 的本地端口
  4. OpenClaw 的 AI Agent 通过本地端口操控远程浏览器

第一步:Ubuntu 桌面环境准备

选一台有桌面环境的 Ubuntu 机器(物理机或虚拟机都行),确保有 X11 显示服务。可以用 VNC 或者 XRDP 远程连上去,手动打开浏览器登录你常用的网站:

  • Google / YouTube
  • Twitter / X
  • GitHub
  • Hacker News
  • 微信读书、知乎等中文平台

登录后浏览器会保存 Cookie 和 Session,之后 AI 操控浏览器时就能直接访问个性化内容。

第二步:Tailscale 组网

在 OpenClaw 服务器和 Ubuntu 机器上分别安装 Tailscale:

1
2
3
# Ubuntu 和 OpenClaw 服务器上都执行
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

安装完成后两台机器自动组成局域网,可以通过 Tailscale 分配的内网 IP 互相访问。用 tailscale status 确认两台机器都在线:

1
2
3
tailscale status
# 100.x.x.x openclaw-server ...
# 100.x.x.x ubuntu-desktop ...

第三步:autossh 端口映射

关键一步——用 autossh 将 Ubuntu 上的浏览器调试端口映射到 OpenClaw 服务器的本地端口。端口号保持一致,这样 OpenClaw 的配置不需要做任何特殊处理,就像浏览器跑在本地一样。

1
2
3
# 在 OpenClaw 服务器上执行
# 假设浏览器调试端口是 9222,Ubuntu 的 Tailscale IP 是 100.x.x.x
autossh -M 0 -N -L 9222:127.0.0.1:9222 user@100.x.x.x

-M 0 禁用 autossh 自带的监控端口(依赖 SSH 自身的 keepalive),-N 表示不执行远程命令只做端口转发。autossh 会在连接断开时自动重连。

为了保证 autossh 隧道的稳定性,用 systemd 管理它。先在 SSH config 中配置好连接别名(避免在 systemd 中写一长串参数),然后创建 service 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# /etc/systemd/system/autossh-browser.service
[Unit]
Description=Stable SSH Tunnel to dev2
After=network.target

[Service]
User=hugo
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -N dev2
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

其中 AUTOSSH_GATETIME=0 让 autossh 在首次连接失败时也会持续重试,不会直接退出。dev2 是 SSH config 中定义的 Host 别名,包含了目标地址、端口转发规则等配置。

安装并启动服务:

1
2
3
4
5
6
7
8
9
10
11
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启用开机自启
sudo systemctl enable autossh-browser.service

# 立即启动
sudo systemctl start autossh-browser.service

# 检查运行状态
sudo systemctl status autossh-browser.service

确认状态为 active (running) 即可。如果需要排查问题,用 journalctl -u autossh-browser.service -f 查看实时日志。

第四步:启动 OpenClaw 节点服务

在 Ubuntu 上用 start_node.sh 脚本启动 OpenClaw 节点。这个脚本做了三件事:启动节点、监控进程、健康检查自动重启。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash
# start_node.sh - OpenClaw 节点启动与守护脚本

set -e

HOST="openclaw.hugozhu.site"
PORT=443

DISPLAY=":10.0"
NAME="hho-dev1"
LOG_FILE="./openclaw.log"
PID_FILE="./openclaw.pid"

export DISPLAY=$DISPLAY

start_node() {
echo "$(date) - Starting OpenClaw..." | tee -a $LOG_FILE
openclaw node run \
--tls \
--host $HOST \
--port $PORT \
--display-name $NAME \
>> $LOG_FILE 2>&1 &

echo $! > $PID_FILE
}

is_running() {
if [ -f $PID_FILE ]; then
PID=$(cat $PID_FILE)
if ps -p $PID > /dev/null 2>&1; then
return 0
fi
fi
return 1
}

health_check() {
openclaw browser status > /dev/null 2>&1
}

while true; do
if ! is_running; then
start_node
fi

sleep 5

if ! health_check; then
echo "$(date) - Health check failed, restarting..." | tee -a $LOG_FILE
kill $(cat $PID_FILE) 2>/dev/null || true
rm -f $PID_FILE
fi

sleep 10
done
# generated by hugo's coding agent

几个关键点:

  • DISPLAY=":10.0":指定 X11 显示器,让浏览器知道在哪个桌面上渲染
  • --tls:通过 TLS 安全连接到 OpenClaw 中心服务
  • --display-name:给节点起个名字,方便在控制台识别
  • 健康检查循环:每 15 秒检查一次,进程挂了自动拉起,浏览器不响应自动重启

第五步:验证远程浏览器状态

在 OpenClaw 服务器上检查远程浏览器是否正常工作:

1
openclaw browser status

如果一切正常,你会看到浏览器节点的连接状态、可用页面等信息。此时 AI Agent 就可以通过 OpenClaw 操控远程浏览器了。

实际效果

配置完成后,你可以让 AI Agent 做这些事:

  • 阅读个性化推荐:打开 YouTube 首页,总结今天的推荐视频
  • 追踪社交动态:浏览 Twitter Timeline,提炼关键信息
  • 深度阅读:打开微信读书中收藏的文章,做笔记和摘要
  • 监控信息源:定时检查 Hacker News、GitHub Trending

这比传统的 API 抓取强大得多——AI 看到的就是你登录后看到的完整页面,包括个性化推荐、私有内容、需要认证的页面。

安全提示

远程浏览器保存了你的登录态,需要注意安全:

  • Tailscale 提供了端到端加密,网络层是安全的
  • Ubuntu 机器本身要做好防护:强密码、SSH 密钥登录、防火墙
  • 定期检查浏览器的 Session,清理不再需要的登录态
  • 建议为 AI 浏览器使用独立的账号,与你的主力账号隔离

为什么不直接用 Tailscale 替代 autossh?

你可能会问:两台机器已经在同一个 Tailscale 网络里,OpenClaw 能不能直接通过 Tailscale IP 访问 Ubuntu 上的浏览器端口,省掉 autossh 这一层?

理论上可以——只要浏览器监听地址从默认的 127.0.0.1 改为 0.0.0.0,Tailscale IP 就能直接访问。但实际上 OpenClaw 只认 localhost,它连接浏览器时固定使用 127.0.0.1,不支持配置远程地址。所以我们仍然需要 autossh 把远程端口映射到本地。

这也是为什么前面强调「端口号保持一致」——autossh 把远程的端口原样映射到本地同一端口,对 OpenClaw 来说浏览器就像跑在本地一样,零配置。

最终的分工很清晰:Tailscale 负责网络连通和加密,autossh 负责端口映射到 localhost,各司其职。

总结

远程浏览器是 AI Agent 能力的一个重要补充。通过 Tailscale 组网 + autossh 端口映射这套方案,你可以在不暴露任何端口到公网的情况下,让 AI 安全地访问你的个性化互联网。整个方案的维护成本很低——一台闲置的 Ubuntu 机器(甚至可以是树莓派加桌面环境)就够了。

AI  OpenClaw  Tailscale  Raspberry-Pi  browser  infrastructure 



原文链接: OpenClaw使用远程浏览器——让AI读懂你的个性化互联网