news 2026/10/3 8:22:33

浏览器中跑3步部署WebVM:WebAssembly Linux沙箱完整上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
浏览器中跑3步部署WebVM:WebAssembly Linux沙箱完整上手指南

浏览器中跑3步部署WebVM:WebAssembly Linux沙箱完整上手指南

【免费下载链接】webvmVirtual Machine for the Web项目地址: https://gitcode.com/GitHub_Trending/we/webvm

想在网页里验证几条 Linux 命令、跑一跑别人的示例脚本,第一反应却是下载镜像、装虚拟机、配网络,最后不了了之。WebVM 是一个直接运行在浏览器里的 Linux 沙箱:基于 WebAssembly、完全客户端运行、无需任何服务器,就能执行未经修改的 Debian 与常见 x86 工具链,本地不用安装任何虚拟化软件。

🧭 一句话认识WebVM

WebVM 是一个基于 HTML5/WebAssembly 的无服务器虚拟环境,在浏览器里运行未经修改的 Debian 发行版及其原生开发工具链。它不是远程云桌面——全程没有服务器参与,指令真实地跑在你的浏览器里;它也不是 Web IDE,更不是容器。底层由 CheerpX 虚拟化引擎提供三样东西:x86 到 WebAssembly 的 JIT 编译器、虚拟块级文件系统、Linux 系统调用模拟器。

📦 它替你省掉了什么

  • 临时验证一条命令或开源示例→ 打开网页就有一台 Debian 终端,装好即用,不碰本地环境。
  • 想试跑一个来路不明的二进制或脚本→ 在浏览器沙箱内执行,与本机系统隔离,用完关标签页即可。
  • Windows、Mac、Linux 环境各不一样→ 所有人跑同一套 Debian,输出一致,跨平台演示不用再解释差异。

⚙️ 工作原理:人话版

可以把 WebVM 理解成建在浏览器里的一间餐厅后厨。Debian 里的原生程序就像一本不改的菜谱:x86 到 WebAssembly 的 JIT 编译器把每条指令当场"念"成浏览器能执行的 WebAssembly;程序还要"找库房"读写文件、"喊服务员"提交系统调用,于是 CheerpX 备好了虚拟块级文件系统和 Linux 系统调用模拟器,让程序察觉不到自己其实跑在浏览器里。网络上,浏览器不开放直接的 TCP/UDP,WebVM 接入 Tailscale,用 WebSocket 作为传输层把客用系统与外界连通;画面则由 HTML canvas 绘制到页面中。每次发布的构建是不可变的,今天可用的版本会一直可用。

🚀 3步跑起来:本地部署步骤

第1步:克隆仓库

git clone https://gitcode.com/GitHub_Trending/we/webvm

启动前,把 debian_mini 的 Ext2 镜像放到仓库根目录,并在config_github_terminal.js中取消CMD、ARGS、ENV、CWD的注释,把IMAGE_URL指向该镜像。

第2步:安装依赖并构建

npm install npm run build

第3步:启动Nginx并访问

nginx -p . -c nginx.conf

打开http://127.0.0.1:8081即可使用。想定制系统内容,修改 dockerfiles/debian_mini 即可;项目另提供更轻量的 Alpine / Xorg / i3 图形环境。

⚠️ 使用边界与注意事项

性能限制

所有计算都发生在浏览器进程内,受本机 CPU 与内存约束;重编译、大负载桌面操作会明显慢于原生系统,轻量级的 Alpine 加 i3 比完整桌面更从容。

网络配置方法

默认没有外网。打开侧边栏的 "Networking" 面板,连接到 Tailscale 并登录(需要账号),连上后才能访问外网;详细说明见 docs/Tailscale.md。

许可与兼容性

它面向 x86 二进制,非 x86 架构的程序不在默认支持范围。公开的 CheerpX 部署供个人探索与测试免费使用;包括非营利与学术在内的机构使用需要许可,另地托管构建需商业许可。

适合谁用

Linux 新手、需要安全跑第三方代码的审查者、追求跨平台一致性的开发者,以及只是想零成本试错的人——只要你的需求是"一个一致、即用即走的浏览器沙箱",它就够用。

浏览器承担真实工作负载,正从"能不能"走向"够不够快"。WebVM 已经回答了前者,性能与生态是接下来值得观察的部分。

【免费下载链接】webvmVirtual Machine for the Web项目地址: https://gitcode.com/GitHub_Trending/we/webvm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 8:21:42

ZeroTermux 内置 bzgrep 命令详解:在 .bz2 压缩包内直接进行正则搜索

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 bzgrep 是 ZeroTermux 内置 Linux 命令手册中收录的一条核心压缩检索命令:它允许你不用先解压,直接在 .bz2 …

作者头像 李华
网站建设 2026/10/3 8:18:31

JSDoc 版本演进全解析:从 3.0.0 到 4.0.0 的变更历史导读

开发工具文档 【免费下载链接】jsdoc An API documentation generator for JavaScript. 项目地址: https://gitcode.com/gh_mirrors/js/jsdoc 点击查看 免费下载 本文以仓库根目录的 CHANGES.md 为蓝本,系统梳理 JSDoc(JavaScript API 文档生…

作者头像 李华
网站建设 2026/10/3 8:16:43

ZeroTermux 内置命令手册精讲:atq —— 查询 at 定时任务队列的利器

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 导读 atq 是 Linux 任务调度体系中与 at 命令配套的查询工具,用于列出当前用户的待执行任务(at 任务&#…

作者头像 李华