把真实 Chrome 桥接进 ECS 要过的三道关
open-web-bridge 的思路与无头浏览器相反:不是让 agent 开一个干净的新浏览器,而是让它驱动你已经登录的那个 Chrome。放到阿里云 ECS 上做远程调试时,这个选择会立刻撞上三件事——扩展装在哪、daemon 谁能连、会话文件落在哪。
它到底怎么连
链路是固定的四段:任意能跑 shell 的 agent 调 owb CLI,CLI 连本机 daemon(127.0.0.1:43917),daemon 通过 WebSocket 连浏览器里的 MV3 扩展,扩展再用 CDP 驱动你正在用的标签页。CLI 是唯一的集成面,客户端零配置。
站内档位是已验证 · L5 运行时冒烟(数据截至 2026-10-29),自动扫描标注「含敏感能力」。外部数字:星标 115(站内)/ 114(GitHub API,2026-11-05 现查),综合分 56.8,npm 周下载 21,npm latest 1.3.0,MIT,engines.node ≥18,运行时依赖只有 ws。注意它没有声明 engines.dsh,宿主版本约束是缺的。
第一关:扩展必须手动装,且要装在你真用的那个浏览器
npm i -g open-web-bridge 只装 CLI 与扩展文件、以及一份 agent skill;owb setup 会告诉你扩展目录在哪,但把扩展装进浏览器这一步只能你自己做。ECS 上如果只装了 npm 包、没在浏览器里加载扩展,现象是 daemon 起来了、owb 自检第二个勾永远是空的。
自检命令给的是两个勾:
owb # daemon ✓ + extension ✓ 才算就绪
owb skill install
第二关:daemon 只监听回环,但同机进程一律信任
这条是安全模型里最需要提前知道的一点。daemon 只监听 127.0.0.1,并校验 WebSocket 握手的 Host/Origin(防 DNS rebinding);但没有配对 token——README 明确写了「本地信任模型」,同机任意进程都能连上来驱动浏览器。v0.7.0–0.8.0 曾经用 ?token= 做同机防护,后来移除了,理由是挡不住同用户的敌对进程。
放到云上的含义:不要把它跑在多人共用、或有其他不可信进程的实例上。单租户 ECS、只跑你自己的东西,是可以的。
第三关:会话文件是明文
按站点保存的登录态(cookies + localStorage + IndexedDB)落在 work/states/,明文,已写进 .gitignore。这意味着:
- 备份实例快照等于备份了你的登录态,快照权限要按凭据对待;
- 不要把工作目录整体推到远端的代码仓库或对象存储;
- 需要迁移登录态时用它自带的
daemon_state_save/daemon_state_load,而不是手工拷目录。
云上还要注意的三件事
| 事项 | 做法 | 原因 |
|---|---|---|
| 出网 | 安全组只放行你管理用的入口,daemon 端口不要放行 | daemon 只服务本机,暴露到公网等于把浏览器控制权交出去 |
| relay 模式 | 若要远程驱动,用 Cloudflare Workers 起中继,别自己开端口 | 中继按 sha256(token) 寻址,token 泄漏不可逆推 |
| 环境变量 | 只在 daemon 启动时读 OWB_RELAY_URL / OWB_RELAY_TOKEN |
改完必须重启 daemon,否则不生效 |
relay 模式有一个必须说清的取舍:没有端到端加密。中继能看到全部明文流量,包括登录 cookie 与 storage。README 把这条写在安全模型里,并且说明 E2EE 还只是计划项。用官方托管以外的中继,等于信任那台中继。
四个坑
坑一 · 只装 npm 包就以为装好了
现象:owb 自检只有一个勾,agent 调命令全部超时。
原因:扩展没装进浏览器,daemon 没有对端可连。
解决:按 owb setup 给出的目录手动加载扩展,再点扩展图标看连接状态。
坑二 · 在多用户机器上跑 daemon
现象:没有异常,但浏览器行为偶尔被「别人」改掉。
原因:无配对 token 的本地信任模型,同机进程都能连 /ctl。
解决:单租户实例;共享机器上别跑,或至少把机器上其他进程收敛到可信集合。
坑三 · 把 TLS 指纹重放当成开箱功能
现象:调 daemon_replay 报找不到二进制。
原因:它依赖 curl-impersonate,需要自己下载对应平台归档放到 bin/,或用 OWB_CURL_BINARY 指过去。
解决:确认要验证协议脚本时再装这层;日常抓包、录制 HAR 不需要它。
坑四 · 忽略维护节奏
现象:装完发现某些新宿主行为对不上,也没有版本约束兜底。
原因:仓库最近一次提交在 73 天前,npm 最新版发布于 2026-08-26,且未声明 engines.dsh,宿主升级时不会有安装期提示。
解决:升级 DSH 前先跑一次 owb 自检与一条最小读写用例;周下载 21 意味着社区验证样本很少,遇到问题要自己定位。
总结
在云上用它,关键不是安装命令,而是三条边界:扩展手动装、daemon 无配对 token、会话文件明文;远程调试要开 relay 就接受「中继可见明文」这个前提,更多浏览器类插件的形态可以对照 DeepSeek Harness Hub 插件清单 里的分类。
适合与不适合
适合:需要读登录后才能看的内容、或要走完带身份的业务流程的人;想抓完整请求/响应与 HAR 做复现的人;单租户云主机上做自动化验证的人。
不适合:多人共用一台机器的团队,本地信任模型没有隔离;要求端到端加密的远程场景,relay 明确没有 E2EE;不愿意手动装浏览器扩展的人。
标签:open-web-bridge、DeepSeek Harness、浏览器桥接、云上部署
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。