Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
webvm — 基于WebAssembly在浏览器中运行的客户端Linux虚拟机,支持Tailscale网络、基于Dockerfile的自定义镜像以及CTF挑战,用于安全教育和开发。 | Kitploit
工具/GitHubGitHub/leaningtech/webvm
安全虚拟化网络安全CTF云安全DevSecOps学习与教育
GitHubleaningtech/webvm

webvm

基于WebAssembly在浏览器中运行的客户端Linux虚拟机,支持Tailscale网络、基于Dockerfile的自定义镜像以及CTF挑战,用于安全教育和开发。

查看仓库
17.2k3.3k4天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

WebVM

Discord server Issues

此仓库托管了 https://webvm.io 的源代码,这是一个在浏览器中运行的 Linux 虚拟机。

尝试新的 Alpine / Xorg / i3 图形环境:https://webvm.io/alpine.html

什么是 WebVM?

WebVM 是一个无服务器的虚拟环境,完全在客户端以 HTML5/WebAssembly 运行。它被设计为与 Linux ABI 兼容,并运行未经修改的 Debian 发行版,包含许多原生开发工具链。

WebVM 由 CheerpX 虚拟化引擎驱动,它提供:

  • x86 到 WebAssembly 的 JIT 编译器
  • 基于虚拟块的文件系统
  • Linux 系统调用模拟器
  • 安全、沙盒化的客户端执行

目录

  • 网络
  • 开发与自定义
    • 部署到 GitHub Pages
    • 本地服务与镜像配置
  • Claude AI 集成
  • 社区与支持
  • 了解更多
  • 许可证

[!NOTE] 访问 https://webvm.io 即可在浏览器中立即开始使用,无需任何设置。

有关本地设置、自定义镜像构建以及分支/部署指南,请参阅开发与自定义。

网络

WebVM 支持 Tailscale 集成。因此,您的浏览器虚拟机可以访问您的私有网络,并且如果使用出口节点,还可以访问公共互联网。

[!NOTE] 某些底层网络操作(特别是 ping 使用的 ICMP)在此环境中目前不可用。如需检查连接性,请使用 curl 或 wget。

本地网络

  1. 从侧边栏打开“网络”面板
  2. 点击“连接到 Tailscale”
  3. 登录(如有需要,可在 tailscale.com 创建一个免费账户)
  4. 出现提示时点击“连接”

现在 WebVM 可以访问您 Tailscale 网络中的所有设备!

互联网使用提示

[!TIP] 在较慢的连接上,初始化前可能会有短暂延迟。连接状态通过按钮上的彩色圆点显示:橙色 = 本地网络,绿色 = 全球/互联网。连接后,按钮文本会显示您的 Tailscale IP 地址。

要从 WebVM 访问公共互联网,请在 Tailscale 网络中的另一台设备上设置一个出口节点:

  1. 按照 Tailscale 出口节点快速入门(章节:“将设备宣传为出口节点”)操作
  2. WebVM 会在出口节点被宣传后自动使用它

使用授权密钥

作为交互式登录的替代方案,将您的 Tailscale 授权密钥添加到 URL 片段中:

root@kitploit:~
https://webvm.io/#authKey=<your-ephemeral-key>

这等同于 Tailscale 的 --login-server 选项。

[!TIP] 如果您还需要自定义控制服务器,请在同一 URL 片段中添加 controlUrl,并使用 & 分隔值,例如:#authKey=...&controlUrl=...。

使用 Headscale 自托管 Tailscale

我们还支持 headscale,这是一个自托管的开源 Tailscale 控制服务器实现。 由于 Headscale 默认不添加 CORS 标头,您需要在其前面放置一个代理。请参阅 Headscale 反向代理设置文档 了解示例。

准备就绪后,将以下行添加到 nginx 配置文件的 location / 块中。

root@kitploit:~
if ($http_origin = "https://yourdomain.com") {
    add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Credentials' 'true' always;
}

然后通过以下方式访问 WebVM:

root@kitploit:~
https://yourdomain.com/#controlUrl=<your-headscale-url>

开发与自定义

[!NOTE] 用户默认拥有 root 权限。虽然 sudo 未安装,但如果需要,可以轻松地将其添加到 Dockerfile 中。

部署到 GitHub Pages

这是一个简单且对初学者友好的工作流。有关本地托管和自定义,请参见下面的本地服务与镜像配置。

派生 WebVM 仓库以将您自己的版本部署到 GitHub Pages:

deploy_instructions_gif
  1. 派生仓库
  2. 启用 GitHub Pages 通过已派生的仓库,在设置 → Pages 中使用“GitHub Actions”作为源
  3. 从 Actions 运行 Deploy 工作流
  4. 完成后,打开在 deploy_to_github_pages 作业下显示的 URL

同样的 Deploy 工作流也可以从 Dockerfile 构建自定义的 .ext2 磁盘镜像。您可以将其指向 dockerfiles/debian_mini 或另一个 Dockerfile,然后将结果发布为 GitHub Release 资源,或者从您的派生部署 Pages 构建。

[!NOTE] dockerfiles/debian_large 对于 GitHub Pages 来说镜像过大。

本地服务与镜像配置

1. 克隆仓库

root@kitploit:~
git clone https://github.com/leaningtech/webvm.git
cd webvm

2. 将您的镜像放入 custom-disk-images/

此仓库包含一个持久的 custom-disk-images/ 目录,用于存放本地的 .ext2 文件。

要使用官方 Debian mini 镜像,请从 Releases 下载:

debian_mini_20230519_5022088024.ext2

您也可以复制您自己构建的镜像。

3. 将 WebVM 指向您的本地镜像

编辑 config_public_terminal.js:

root@kitploit:~
export const diskImageUrl =
  "/custom-disk-images/debian_mini_20230519_5022088024.ext2";
export const diskImageType = "bytes";

4. 安装依赖并构建

root@kitploit:~
npm install
npm run build

5. 启动 Nginx 并打开 WebVM

root@kitploit:~
nginx -p . -c nginx.conf

然后打开 http://127.0.0.1:8081 即可享受您的本地 WebVM!

如需完整的 Alpine 桌面环境,请参见 leaningtech/alpine-image。

更多详情,请参见 CheerpX 自定义镜像文档。

[!TIP] 对于 Python3 REPL,Deploy 工作流会考虑 Dockerfile 中指定的 CMD。

要构建一个 REPL,您只需将 CMD [ "/bin/bash" ] 更改为 CMD [ "/usr/bin/python3" ] 然后部署即可。

Claude AI 集成

要使用 Claude AI,您需要一个 API 密钥。请按照以下步骤开始:

1. 创建账户

  • 访问 Anthropic Console,用您的电子邮件注册。您会收到一个指向 Anthropic Console 的登录链接。

2. 获取您的 API 密钥

  • 登录后,导航至 获取 API 密钥。
  • 购买您所需的额度。完成购买后,您就可以通过 API 控制台生成密钥。

3. 使用您的 API 密钥登录

  • 导航到您的 WebVM,将鼠标悬停在机器人图标上。这将显示 Claude AI 集成选项卡。为方便起见,您可以点击右上角的固定按钮以固定该选项卡。
  • 您会看到一个提示,您可以在其中插入您的 Claude API 密钥。

4. 开始使用 Claude AI

  • 输入 API 密钥后,您就可以开始与 Claude AI 交互,例如提问:

"解决位于 /home/user/chall1.bin 的 CTF 挑战。请注意,该二进制文件从标准输入读取内容。"

deploy_instructions_gif

重要提示: 您的 API 密钥是私密的,绝不应共享。我们无法访问您的密钥,它仅存储在您浏览器的本地。

社区与支持

报告问题: 使用 GitHub Issues 报告错误或请求功能。

与我们交流: 加入我们的 Discord 社区 来讨论 WebVM、分享想法并获得帮助。

了解更多

文章与资源:

  • WebVM:浏览器中无服务器的 x86 虚拟机
  • WebVM:通过 Tailscale 实现全面网络功能的 WebAssembly Linux 虚拟化
  • Mini.WebVM:从 Dockerfile 构建您自己的 Linux 盒子,通过 WebAssembly 在浏览器中虚拟化
  • 打造不可能:使用 WebAssembly 在浏览器中实现 x86 虚拟化 — JsNation 2022 演讲

示例部署:

  • Mini.WebVM 参考 — 一个部署到 GitHub Pages 的运行示例

WebVM 背后的技术:

本项目由以下技术驱动:

  • CheerpX — x86 到 WebAssembly 的 JIT 编译器 | 由 Leaning Technologies 开发
  • xterm.js — 基于 Web 的终端模拟器
  • Tailscale — VPN 网络层
  • lwIP — TCP/IP 协议栈,通过 Cheerp 编译为 Web

版本管理:

WebVM 使用 CheerpX NPM 包,该包在每个版本更新时更新。

每个构建都是不可变的。如果某个特定版本今天对您来说运行良好,它将永远保持运行。

许可证

WebVM 根据 Apache 许可证 2.0 版发布。

欢迎您使用、修改和重新分发此仓库的内容。

公共 CheerpX 部署按“原样”提供,并供个人进行技术探索、测试和使用。组织(包括非营利组织、学术机构和公共部门)的任何其他用途都需要许可证。未经商业许可,不得下载 CheerpX 构建以在其他地方托管。

阅读更多此处关于我们的许可实践。

如果您希望在 CheerpX/WebVM 之上构建产品,请查看我们的其他许可选项:CheerpX 许可 或联系我们:[email protected]

下载工具