在 NAS 上跑一个浏览器,和朋友远程一起控制它

rabb.it 倒闭之后,我和朋友远程看片的方案就断掉了。屏幕共享太卡,开直播又麻烦,Discord 还老崩。前几天翻 GitHub 发现 Neko,眼前一亮:在 Docker 里跑一个完整浏览器,用 WebRTC 串流到浏览器里,多人能同时看、还能轮流控制。

21k+ stars,Apache 2.0,完全免费。今天刚更新了一版,顺手就试了一下。

Neko 项目 Logo

部署过程

最简方案就是一条 docker run:

docker run -d --name neko -p 8080:8080 -p 52000-52100:52000-52100/udp 
  -e NEKO_PASSWORD="你的密码" -e NEKO_EPR="52000-52100" 
  ghcr.io/m1k1o/neko:firefox

跑起来之后访问 NAS 的 8080 端口,输入密码就能看到一个完整的 Firefox 在浏览器里运行。原理是容器里跑了个 X Server + Firefox,后端用 Go 写的 WebRTC 服务器把画面和声音推给你。

但我踩了几个坑。

第一个坑是端口。 我只开了 8080 就进去,结果黑屏。看日志才发现 WebRTC 的 ICE 打洞需要 UDP 端口范围,52000-52100 必须映射。没映射的话,本地局域网能连,外网直接黑屏。

第二个坑是内存。 容器默认的 shm_size 只有 64MB,Firefox 开两个标签页就崩溃。我改成 2GB 才稳。配置低的机器可以降到 1GB,但别开太多标签。

第三个坑是浏览器镜像。 官方提供 Firefox、Chromium、Chrome、Edge、Brave、Tor,甚至还有 VLC 和 XFCE 桌面。Chromium 系需要加 --cap-add=SYS_ADMIN,否则 DRM 视频播不了。Firefox 最省心,我最后用的就是它。

Neko 支持的浏览器与应用

实际体验

Neko 虚拟浏览器界面

几个朋友同时连进来,各自用自己的名字登录,底部会显示一排头像。谁想控制浏览器就点一下键盘图标,管理员可以直接从右键菜单把控制权交给别人。

延迟比我想象的低。WebRTC 确实比图片帧串流流畅得多,声音也能同步。我在 NAS 上长期跑了一个实例,CPU 占用大概 30-40%(4 核环境),内存 2GB 左右。720P 视频很顺,4K 就别想了,CPU 会爆。

聊天面板也内置了,边看边聊不用再开另一个软件。还支持表情和文件传输,不过我试了一下文件传输,稳定性一般,不太推荐重度依赖。

其他玩法

除了看片,这个项目还有不少场景能用:

  • 一次性浏览器:访问不信任的网站,用完即弃, cookie 和痕迹全留在容器里,不会污染本机。
  • 远程调试:在里面跑 Playwright 或 Puppeteer,同时通过 WebRTC 实时观察自动化过程,出问题了能直接人工干预。
  • 跳板机:配合内网穿透工具,可以安全访问家里或公司的内部系统,不需要 VPN。
  • 直播录制:支持 RTMP 推流,能把浏览器操作直接推到 Twitch 或 YouTube,也可以录成文件。

多房间管理可以用 neko-rooms 这个项目,它提供 REST API 和自动 HTTPS 配置,适合团队用。

Neko 是个很有意思的项目。作者最初只是想和朋友一起看动漫,rabb.it 倒闭后自己造了一个,没想到做到了 21k stars。它在 GitHub 上今天刚更新,维护很活跃。

如果你也有远程协作浏览、隐私隔离、或者多人看片的需求,值得一试。Docker 一行命令就能跑起来,成本几乎为零,数据也完全在自己手里。

发表评论