Neko:把整个浏览器塞进 Docker、用 WebRTC 串流的虚拟桌面
阅读时间: 大约 7 分钟
Neko:把整个浏览器塞进 Docker、用 WebRTC 串流的虚拟桌面

远程桌面不新鲜,但 Neko(n.eko,m1k1o 维护,Apache-2.0)走了一条很「极客」的路:它把一个完整的 Linux 桌面(默认是浏览器)跑在 Docker 容器里,用 WebRTC 把画面和声音低延迟地串到你的浏览器,还能让多个人同时连进来、实时协作操作。你不需要装任何远程桌面客户端,打开网页就能进到一台「住在容器里的电脑」。本文基于其官方仓库分析。
一、它为什么存在:一个「一起看片」的初心
官方 README 里讲了个很朴素的来历:原创作者是因为 rabbit.it(曾经的一起看片网站)倒闭了,自己的网络又扛不住串流、朋友用 Discord 共享屏幕又老崩,他只是想和朋友一起看动画。最初的项目后来无人维护被归档,m1k1o 因为喜欢「多人协同浏览同一个浏览器」这个想法而 fork 并维护至今。这个 origin 决定了 Neko 的基因——它首先是个多人实时共享浏览器的工具,而不是传统意义上的单人 VPS 远程桌面。
二、是什么:容器里的桌面 + WebRTC 中继

技术上,Neko 做的事是:在 Docker 容器内跑一个 X 桌面环境(或直接一个浏览器),把屏幕画面和音频通过 WebRTC 推给网页端;你的键盘、鼠标输入则反向送回容器里执行。网页端自带聊天(Chat)、文件(Files)、设置(Settings)面板,底部还有表情栏。
关键点在于它不止能跑浏览器:官方明确说,容器里可以跑任何 Linux 程序(比如 VLC),甚至装完整的 XFCE / KDE 桌面;理论上它也不必跑在容器里,可以直接连你主机的 X server,把整个 VM 变成可串流的对象。浏览器只是最常用的那个用例。官方提供大量预置 Docker 镜像:Firefox、Chromium、Google Chrome、Brave、Edge、Tor Browser、ungoogled-chromium,以及 XFCE、KDE、VLC、Remmina 等。
三、关键事实
| 维度 | 官方口径 |
|---|---|
| 协议 | Apache-2.0,m1k1o fork 维护 |
| 传输 | WebRTC(音视频串流 + 反向输入) |
| 运行环境 | Docker 容器(也可装在主机连 X server) |
| 预置镜像 | Firefox/Chrome/Chromium/Brave/Edge/Tor/Opera 等浏览器,XFCE/KDE/VLC 桌面 |
| 多人 | 多用户同时接入、实时同步、可互相控制、带聊天与表情 |
| 扩容 | 用 neko-rooms 通过 API 批量申请「房间」 |
四、它适合干什么:多人协同优先
官方把用例分成两类。多人协同类是它的主战场:容器里的桌面与声音对所有参会者实时同步,谁都可以把鼠标接过去操作,聊天和表情让「一起看」变成「一起玩」。
- Watch party:多人一起看视频、实时发弹幕表情,giggles.app / hyperbeam 的开源替代;
- 交互式演示:不只是共享屏幕,观众还能接管操作;
- 协同浏览 / 排错:多人 co-browsing、一起 debug;
- 支持 / 教学:在受控环境里手把手带别人;
- 嵌入式虚拟浏览器:把一个浏览器嵌进你自己的 Web 应用,hyperbeam API 的开源替代。
单人类则是顺手:把容器化的应用/桌面串给最终用户(类似 Kasm),或者一个带持久 cookie、随处可访问的「随身浏览器」。Koala 周报还点出了一个新趋势:随着 browser agent 流行,Neko 这种「远程浏览器 + 可程序化控制」的形态,正成为搭建远程浏览器 agent 的底层方案——比起每次都拉起一个全新的 headless Chromium,Neko 提供了一个有完整图形界面、可被 WebRTC 观察、可注入输入的持久会话,恰好落在「给 AI 一个能看见、能点的真浏览器」这个需求上。配合 neko-rooms 的 API,还能按需批量开出隔离房间,每个 agent 一个干净环境。
五、客观分析:优势与局限
优势:
- 零客户端:浏览器就是客户端,WebRTC 低延迟;
- 隔离干净:所有浏览都发生在容器里,和你本机隔离;
- 多人实时协作:这是它和 Kasm(偏单人交付)最大的差异;
- 可自托管、数据自己掌握;
- 灵活:浏览器、桌面、任意 Linux 程序都能塞进去。
局限与口径:
- WebRTC 的网络条件要求:P2P / 中继需要正确处理 STUN/TURN 与端口(UDP),在严格 NAT 或公司网络下连通性要额外调;
- 资源占用:容器里跑完整桌面 + 浏览器,比纯无头浏览器重,一台小 VPS 开多个房间要算内存/CPU;
- 它不是 RDP/VNC 替代品:官方说 RDP/VNC 中继目前还只是未来方向,现阶段它就是 X+WebRTC;
- 安全靠自己:把一个可联网的桌面暴露到网页,默认账号/admin 这种必须改强密码,否则等于把一个开放浏览器挂在公网上。
六、谁该用
- 想和朋友/团队一起看视频、协同填表、一起在一个隔离浏览器里测试 Web 应用的人;
- 想给客户/学员交付一个「浏览器里的受控环境」做演示或教学的团队;
- 正在搭远程浏览器 agent、需要一个可 WebRTC 串流、多人可接入的底座的开发者。
如果你只是想要一个自己用的远程浏览器,Kasm 或干脆一个 VPS + SSH 也够;Neko 的灵魂在于多人实时共享与协同——这是它区别于一切单人远程桌面的地方。