Repolode
leaningtech

leaningtech/webvm

一个完全在浏览器中运行的 Linux 虚拟机,通过 CheerpX 将 x86 代码编译为 WebAssembly 执行。

Star
17,441
Fork
3,339
未关闭 Issue
12
最近提交
14天前

这是什么?

WebVM 是一个无需服务器、完全在浏览器端运行的 Linux 虚拟环境,基于 HTML5 与 WebAssembly 实现。它面向 Linux ABI 兼容,可直接运行未修改的 Debian 发行版,并包含多种原生开发工具链。

虚拟机由 CheerpX 引擎驱动,提供 x86 到 WebAssembly 的 JIT 编译器、基于块的虚拟文件系统、Linux 系统调用模拟层以及沙箱化的客户端执行环境。终端界面使用 xterm.js 实现。

仓库包含 webvm.io 的源码,可以 fork 后部署到 GitHub Pages,也可以从 Dockerfile 构建自定义 ext2 磁盘镜像。项目还支持通过 Tailscale 联网,可选择出口节点或自建 Headscale 控制服务器,并集成了 Claude AI 面板。

核心功能

  • 01通过 x86 到 WebAssembly 的转换,在浏览器中运行未修改的 Debian 发行版。
  • 02提供基于块的虚拟文件系统和 Linux 系统调用模拟。
  • 03集成 Tailscale 联网,支持出口节点和 Headscale 自建控制服务器。
  • 04可从 Dockerfile 构建自定义 ext2 磁盘镜像,并部署到 GitHub Pages。
  • 05内置 Claude AI 面板,API 密钥仅保存在浏览器本地。

适用场景

  • 无需本地安装,即可直接试用 Linux shell 或开发工具链。
  • 基于自定义 Dockerfile 构建浏览器内的 REPL,例如 Python 环境。
  • 在静态站点上托管可交互的 Linux 演示或教程环境。
  • 在隔离的沙箱中练习 CTF 题目。

快速上手

  1. 1

    克隆仓库

    git clone https://github.com/leaningtech/webvm.git
  2. 2

    安装依赖

    npm install
  3. 3

    构建项目

    npm run build
  4. 4

    启动 Nginx 并在 http://127.0.0.1:8081 打开 WebVM(需先将磁盘镜像放入 custom-disk-images/)

    nginx -p . -c nginx.conf

使用前须知

  • 公共 CheerpX 部署仅供个人探索和测试免费使用;组织机构使用需要商业许可。
  • 虚拟机内不支持部分底层网络功能,例如用于 ping 的 ICMP。
  • 用户默认拥有 root 权限,且未安装 sudo。

标签

常见问题

webvm 是什么?
一个完全在浏览器中运行的 Linux 虚拟机,通过 CheerpX 将 x86 代码编译为 WebAssembly 执行。 WebVM 是一个无需服务器、完全在浏览器端运行的 Linux 虚拟环境,基于 HTML5 与 WebAssembly 实现。它面向 Linux ABI 兼容,可直接运行未修改的 Debian 发行版,并包含多种原生开发工具链。
webvm 可以免费使用吗?用的什么许可证?
webvm 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
webvm 还在维护吗?
活跃维护中。webvm 最近一次提交是在 2026年10月7日。
webvm 适合用来做什么?
无需本地安装,即可直接试用 Linux shell 或开发工具链。 基于自定义 Dockerfile 构建浏览器内的 REPL,例如 Python 环境。 在静态站点上托管可交互的 Linux 演示或教程环境。 在隔离的沙箱中练习 CTF 题目。
webvm 怎么安装和运行?
克隆仓库: git clone https://github.com/leaningtech/webvm.git 安装依赖: npm install 构建项目: npm run build 启动 Nginx 并在 http://127.0.0.1:8081 打开 WebVM(需先将磁盘镜像放入 custom-disk-images/): nginx -p . -c nginx.conf
在哪里获取 webvm?
源代码和安装说明在 GitHub 上:https://github.com/leaningtech/webvm

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目