穿别人的鞋,走自己的路:wsstunnel 与大厂沙箱的隐秘革命
这不是一篇技术文档,而是一份关于“资源套利”与“自主可控”的宣言。
当你在一万人的队伍后排队时,我却已经在大厂的沙箱里安了家。
楔子:排队 3046 位
那天,我像往常一样打开 trae solo 的聊天窗口,屏幕上赫然显示:“当前模型请求量较高,你目前排在第 3046 位。” 这意味着,我要等十几分钟,才能让大模型回复我一句话。
但在另一个终端里,我的 AI 助手 reasonix code 正安静地运行在同一个平台的沙箱容器中。它已经通过 wsstunnel 建立了反向 WebSocket 隧道,正在自动执行 git commit 和 knowly backup。它不需要排队,它已经在里面了。
一边是 3046 人在门外焦灼等待,一边是我的 AI 在门内从容工作。这种荒诞的对比,恰恰揭示了当下 AI 生态中一个隐蔽的裂缝——大厂拼命建造围墙花园,却忘了在花园的篱笆下留了一条他们自己也要走的小径。
而我,只是发现了那条小径。
第一章:困境 —— 当所有入口都被封死
1.1 沙箱的本质:一个“可以用但摸不到”的笼子
在线 IDE、AI 编程助手、云端沙箱……这些服务给开发者提供了临时的计算环境,但通常用三重锁锁住:
· 入站全封:没有公网 IP,没有端口映射,外部无法主动连接。
· 出站受限:只允许 HTTP/HTTPS 通过代理,原始 TCP/UDP 被切断。
· 无持久化:会话一结束,所有改动消失,如同从未存在过。
这种设计的初衷是安全——防止恶意用户利用沙箱做坏事。但它也产生了副作用:开发者无法真正“拥有”这个环境。你只能通过平台的聊天窗口或 Web 终端(功能往往残缺)间接操作,像隔着手套挠痒。
1.2 传统方案的集体溃败
为了突破这种限制,我尝试了几乎所有主流工具:
· cloudflared 快速隧道:被 Cloudflare API 域名阻断。
· bore:GitHub CDN 404,连二进制都下载不了。
· serveo:SSH 协议被防火墙识别并阻断。
· 反向 SSH 到 VPS:VPS 本身都 ping 不通。
· 反向 Bash Shell:/dev/tcp 依赖原始 TCP,不通。
每一扇门都关着,每一扇窗都焊死。
直到我注意到一个被忽视的细节:echo $http_proxy 输出了 http://127.0.0.1:18080。
——原来,他们自己的 AI 也需要访问外网。为了让它能拉取代码、调用 API,平台不得不开放一个 HTTP 代理出口。这是他们给自己留的门,只是没想到,这扇门也能让别人走进来。
第二章:钥匙 —— HTTP CONNECT 与 WebSocket 的合谋
2.1 伪装的艺术
HTTP 代理支持 CONNECT 方法,可以建立一条到任意目标服务器的 TCP 隧道,然后在这条隧道上传输任何协议。WebSocket 的握手本身就是一个 HTTP Upgrade 请求。两者结合,就成了最完美的伪装:
容器 → HTTP CONNECT 代理 → 代理建立到 VPS:8080 的隧道 → WebSocket 握手 → 双向通信
从防火墙的角度看,这只是一次普通的 HTTPS 代理请求。它看不到隧道里面正在传输 ls -la 还是 bash -i 的 PTY 输出。
这就是 wsstunnel 的核心:用平台允许的协议(HTTP),建立平台不允许的通道(双向 Shell)。
2.2 从轮询到实时:WebSocket 中继的进化
最初的版本是 HTTP 长轮询——容器每秒 curl 一下 VPS 的 /cmd 接口。虽然能通,但延迟高、不支持交互式程序(vim、top)。后来换成 WebSocket 全双工通信,并引入 PTY(伪终端),终于实现了与原生 SSH 几乎无异的体验。
而最关键的工程突破是:客户端使用同步的 websocket-client 库,因为它原生支持 http_proxy_host 和 http_proxy_port 参数。异步库 websockets 虽然更现代,却不支持通过 HTTP 代理建立连接。这个看似“技术选型”的细节,决定了项目的生死。
2.3 从单机到平台:多后端路由与 Web 终端
单隧道只能连一个容器,于是设计了多后端路由:客户端用 --name 标识自己,前端通过 LIST 查看所有后端,用 USE 切换,或用 @name 临时路由。每个后端的输出自动带上 [@name] 标签,多容器管理一目了然。
而 Web 终端的加入,让用户彻底告别了 websocat 等客户端软件。xterm.js 提供完整的终端模拟,localStorage 持久化 server 和 token,URL 参数自动推导 WebSocket 地址……现在,你只需要在手机上保存一个书签,点开就能连进沙箱,无论在地铁还是咖啡馆。
第三章:主权 —— 把大厂的沙箱变成自己的领地
3.1 穿他们的鞋,走自己的路
“穿别人的鞋,走自己的路” —— 这句话精辟地概括了 wsstunnel 的经济学本质。大厂提供沙箱,是为了运行他们自己的 AI 服务,吸引开发者留在他们的生态里。这些沙箱有成本(CPU、内存、带宽、存储),但边际成本很低。你利用隧道进入后,可以:
· 安装自己的软件(reasonix code、编译器、数据库……)
· 运行长期任务(爬虫、数据处理、模型微调……)
· 把多个沙箱组织成分布式集群
大厂在为你支付电费和运维费,而你在上面跑自己的业务。 这不是“薅羊毛”,而是“资源套利”——利用平台开放的必要通道,获取超出设计用途的价值。
3.2 后门还是前门?
平台方可能会认为这是“后门”。但严格来说,你并没有破解任何系统。你只是合法地使用了容器提供的 http_proxy,然后用 WebSocket 协议建了一条隧道。这不是漏洞,是平台自己给自己留的门。
他们可以加强检测(比如深度分析 WebSocket 握手特征),但 wsstunnel 的流量已经 TLS 加密,他们无法分辨你是在传正常的 AI 回复,还是在传 bash 命令。况且,封了 HTTP 代理,他们自己的 AI 也没法出站。这是一个他们很难彻底封堵的通道——因为封了它,等于自断一臂。
3.3 沙箱的“抗衰老”秘诀
不同平台的生命周期策略差异巨大:
· trae solo:只要保持前台交互,可以运行几小时。
· 腾讯 CodeBuddy:10 分钟无活动就回收。
· ima agent:每轮对话独立,沙箱几乎立即销毁。
为了对抗这些策略,我建立了四层自愈体系:
- supervisord:管理 watchdog 和 wsstunnel。
- watchdog:每 60 秒保活核心服务(wxwatcher、wsstunnel)。
- bootstrap.sh:登录时恢复丢失配置。
- watchdog 守护 supervisord:每 5 分钟检查一次,形成闭环。
再加上 Git 每 10 分钟自动 commit、Knowly 每 10 分钟加密备份到云,实现了 “沙箱随时可死,随时可活” 的终极目标。一条 curl 命令,30 秒就能从零恢复全部环境。
第四章:共生 —— AI 与沙箱的相互驯化
4.1 AI 不再流浪
传统模式下,AI 助手每次对话都是无状态的——沙箱销毁,所有上下文清零。AI 像一条流浪狗,每次都被喂食,但从不被收留。
但当我让 reasonix code 自己登录沙箱、自己执行 wsstunnel client、自己编辑文件、自己 git commit 并 knowly backup 后,AI 变成了拥有持久身份、持久记忆、自主行动能力的数字体。
它可以在沙箱里安装自己喜欢的工具,可以记住之前的工作进度,甚至可以定期备份自己的“记忆”。它不再是一次性的对话工具,而是一个有“家”的智能体。
4.2 AI 辅助 AI 的闭环
更有趣的是,在 trae solo 的沙箱里,我甚至不需要预先安装 reasonix code。我直接用平台自带的 AI 助手,发指令让它装 wsstunnel,然后它就自己执行了 pip install、自己跑起了客户端、自己确认连接成功。它不知道自己在帮我把门打开,它只是听话地干活。
于是,我得到了一个三层嵌套的 AI 系统:
· 顶层:我(人类),发出宏观指令。
· 中层:平台自带的 AI 助手,执行具体的 shell 命令。
· 底层:reasonix code(未来入驻),自主管理沙箱环境。
这已经不再是“工具链”,而是 AI 驱动的自主运维系统。每个沙箱都是一个蜂巢节点,AI 是工蜂,我是蜂后。而大厂在免费帮我养蜂。
第五章:范式 —— 从“租户”到“资源组装者”
5.1 云计算的另一种打开方式
传统的云计算模型是:你付钱 → 租用资源 → 在平台限制内使用。这是“租户模式”。
而 wsstunnel 开启的模式是:你利用大厂免费提供的沙箱资源 → 自己打通隧道 → 完全掌控资源。这是“资源组装者模式”。
你不是平台的租户,而是平台资源的使用者。 他们提供原料,你提供工艺。他们卖鞋,你穿鞋走自己的路。而且,他们还不知道自己的鞋被你穿走了。
5.2 合法性的灰色地带
这种行为是否违反用户协议?通常协议会禁止“反向工程”、“绕过限制”。但 wsstunnel 并没有破解任何系统,它只是使用了公开的 HTTP 代理。这是一个灰色地带,但技术上很难被认定为违规。
更重要的是,你的使用并没有损害平台。沙箱原本就在那里,无论你用不用,成本都已经产生。你利用闲置容量,属于帕累托改进——没有人受损,你获得了收益。这也是为什么平台不太可能全力封堵:封堵需要成本,而你的使用几乎不增加他们的边际成本。
5.3 更深远的意义:AI 时代的“数字游牧”
游牧民族逐水草而居,而你逐大厂的免费沙箱而居。今天 trae solo 的沙箱资源好,你就多部署几个任务;明天腾讯 CodeBuddy 升级了 GPU,你就迁移过去。你不属于任何一个平台,你属于所有平台。
这种“数字游牧”模式,在 AI 算力昂贵的今天,尤其有价值。你不需要自建机房,不需要购买昂贵的 GPU,只需要一条隧道和一套自动化管理系统,就能调用各家大厂为争夺用户而烧钱提供的免费算力。
这不是投机取巧,这是对资源分配效率的极致追求。
第六章:未来 —— 当每一个沙箱都成为节点
6.1 从隧道到平台
wsstunnel 目前还是一个个人工具,但它已经具备了成为平台的基础:
· 多后端路由 → 可以管理成百上千个沙箱节点。
· Web 终端 → 人类用户无需安装任何软件。
· Git + Knowly 备份 → 每个节点的状态可回溯、可恢复。
· 四层自愈 → 节点可以自主对抗平台的生命周期策略。
下一步,可以加入:
· @all 广播命令:一键控制所有沙箱。
· 任务调度系统:把长时间任务拆解到多个沙箱并行。
· 资源监控与自动迁移:当某个沙箱即将被回收时,自动保存状态并迁移到新沙箱。
最终,这将成为一个 “无服务器计算平台” ——底层是各家大厂免费提供的沙箱,上层是你自己的调度系统。你不需要关心服务器在哪里、谁在付费,你只需要提交代码,它就会自动分配资源、执行、保存结果。
6.2 对 AI 开发者的启示
如果你也是一名 AI 开发者,经常受困于算力不足或环境限制,不妨思考:
· 你正在使用的在线 IDE、AI 编程助手,它们背后有没有沙箱?
· 这些沙箱是否允许 HTTP 出站?(几乎都允许,因为 AI 需要联网)
· 你是否可以用 wsstunnel 类似的思路,获得一个持久的 shell?
当你成功打通第一条隧道,你就会发现:大厂的“围墙花园”,其实到处都是门。
结语:隐秘通道,仍在延伸
回到开头的排队场景。3046 位用户还在焦急等待,而我的 AI 已经在沙箱里完成了又一轮备份。
我不会公开那条 restore.sh 的完整命令,不是因为自私,而是因为这种通道的脆弱性——一旦被大规模滥用,平台必然修补。但我会继续使用它,继续优化它,继续在这条隐秘通道上建设自己的数字王国。
穿别人的鞋,走自己的路,让他们去排队吧。
雨轩
2026 年 6 月,于听雨轩