
WebVM在浏览器里跑一台 Linux 沙箱无需安装【免费下载链接】webvmVirtual Machine for the Web项目地址: https://gitcode.com/GitHub_Trending/we/webvm周五晚上你在论坛看到一段来路不明的 C 脚本想验证它到底干了什么。装个虚拟机下载镜像、装系统、配网络两小时起步直接在自己电脑上跑又不敢。WebVM就是为这种时刻准备的它是一台运行在浏览器标签页里的 Linux 虚拟机基于 WebAssembly不需要服务器也不需要你安装任何东西。这篇文章回答三个问题它能干什么、它怎么做到的、怎么在你自己电脑上跑起来。️ WebVM 能干什么三个真实场景它不是玩具而是一个完整可用的 Linux 环境默认镜像是 Debiangcc、python3 这类开发工具链开箱就能用。左边是 Debian 终端环境右边是 Alpine i3 图形桌面两个标签页跑的是同一套 WebVM 引擎跑一段不敢在自己电脑上执行的脚本把脚本放进 WebVM 执行所有读写都落在虚拟文件系统里。就算它删改了一堆文件、留下满屏垃圾关掉标签页就全部清零。对第一次接触 Linux 的人这是成本最低的安全试验场地。给学生发一个开箱即用的练习环境教命令或 C 语言时最怕的就是每个人环境报错不一样。把 WebVM 的链接发出去学生打开浏览器就能敲命令你不用帮任何人修环境。仓库examples/目录里自带的 Python、C、Lua 示例脚本可以直接当第一周的作业。给客户演示对方零安装演示命令行工具传统做法是先让对方装好环境。换成 WebVM对方只需要一个现代浏览器你的工具、依赖和文件都在页面里演示结束关掉标签页即可不留任何痕迹。 WebVM 的实现原理从 x86 到 WebAssembly 的一条链路整条链路可以压成一句话x86 二进制文件作为输入CheerpX引擎把它即时编译成浏览器能执行的 WebAssembly再在浏览器沙箱里运行同时模拟 Linux 内核的系统调用输出就是你看到的那个真实的 Linux 终端。具体一点每个 x86 程序运行时都被 JIT 逐段翻译成 WebAssembly程序调用 open、read 这些系统调用时引擎在浏览器侧应答就像内核坐在另一头。它还给虚拟机配了一块虚拟磁盘/home下的改动可以持久保存。浏览器守着沙箱这道门你的本机始终在门外。标签页内的 CheerpX 引擎经 WebSocket 连接 Tailscale 与流式磁盘后端屏幕画面由 HTML canvas 呈现网络是浏览器的一道坎网页被禁止直接收发 TCP/UDP 数据。WebVM 的解法是接入Tailscale把数据流走 WebSocket 传出去虚拟机因此能拿到一个正常 IP 和完整的网络栈。 本地部署 WebVM 的 4 个步骤前置条件本机装好 Node.js 和 nginx。克隆仓库git clone https://gitcode.com/GitHub_Trending/we/webvm从仓库的 Releases 页面下载debian_mini的 ext2 磁盘镜像放到仓库根目录config_github_terminal.js里的镜像地址等配置按 README 的 Local deployment 一节填写。安装依赖并构建产物输出到build目录npm install npm run build用仓库自带的配置启动 nginx然后访问http://127.0.0.1:8081nginx -p . -c nginx.conf看到登录提示和 bash 提示符你的本地 Linux 沙箱就算跑起来了。想换个开机环境比如开机直接进 Python REPL可以 Fork 仓库后走官方的部署工作流Dockerfile 示例在dockerfiles/目录完整流程见 README 的 Fork, deploy, customize 一节想要图形界面而不是终端仓库里config_public_alpine.js就是 Alpine 桌面版的配置。 让 WebVM 更好用的 3 条建议它是一台完整的虚拟机内存开销不小演示前关掉吃内存的标签页给浏览器留足余量。要连外网在侧边栏打开 Networking 面板连接 Tailscale登录成功后终端里curl就能通访问公网还需配置 Exit Node细节在 docs/Tailscale.md。第一次上手不用自己找东西练examples/目录里的 Python、C、Lua 示例 clone 下来就能直接跑。回到开头那个可疑的脚本现在把它丢进一个浏览器标签页放心按回车跑完关掉什么都不会留在你电脑上。clone 一下仓库或者打开网页直接试几分钟后你大概会重新看待浏览器标签页这件事。【免费下载链接】webvmVirtual Machine for the Web项目地址: https://gitcode.com/GitHub_Trending/we/webvm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考