什么是 WinBoat:Linux 上真正的 Windows 应用兼容性

最后更新: 十月14 ,2025
  • WinBoat 使用 KVM 和 Docker 运行真正的 Windows,并将其 Windows 集成到 Linux 中。
  • 比 Wine 具有更好的兼容性,具有 GPU 限制和内核反作弊功能。
  • 明确的要求:活动的 KVM、rootful Docker、FreeRDP 3 和 /var 中的 32 GB。

Linux 中的 WinBoat 是什么?

切换到 Linux 系统需要遵循一定的规则,而且几乎总是出于同一个原因:与 Windows 应用程序的兼容性。虽然几乎所有功能都有开源替代方案,但它们并不总是能 100% 满足您的需求,您可能仍然依赖于某个编辑器、某个 ERP 系统或某个只能在微软系统上运行的特定游戏。

这就是 WinBoat 的用武之地:它既不是类似 Wine 的底层程序,也不是传统意义上的重量级虚拟机。WinBoat在底层运行着一个真正的 Windows 环境,利用 KVM 虚拟化和 Docker 容器,并通过 FreeRDP/RemoteApp 将 Windows 集成到你的 Linux 桌面中。最终,Windows 应用几乎可以像原生应用一样运行,无需双启动或处理复杂的配置。

WinBoat 是什么?它有什么用途?

WinBoat 是一款免费开源应用程序,旨在弥合两个世界之间的鸿沟:打造“企鹅版 Windows ”。其开发者 TibixDev 设计了一个简洁流畅的界面,并配备了自动化功能,力求让 Windows 与 Linux 集成环境的搭建变得尽可能简单,既适合 Windows 新手,也适合需要可靠性的高级用户。

本质上,它会启动一个真正的 Windows 系统,并将程序以独立窗口的形式呈现在您的 GNOME、KDE ​​或其他桌面环境中。如果某个程序在 Windows 上运行正常,那么它很可能也能在这里运行,但有两个主要例外:需要高级图形加速(GPU 直通)的应用程序和带有内核级反作弊功能的游戏。

除了窗口集成之外,WinBoat 还提供了一些实用功能:按需提供完整的 Windows 桌面、智能卡直通、资源监控,以及每个版本都会带来的改进。其理念并非模拟或转换 API,而是封装 Windows 并以便捷稳定的方式将其应用程序暴露出来。

如果您使用过 WinApps,就会发现 WinBoat 的设计理念有所不同。在 WinApps 项目中,配置过程更依赖用户操作:手动步骤更多,自动化程度更低。而 WinBoat 通过图形化向导和更流畅的用户体验,减少了用户的操作负担,同时在需要微调时也能提供足够的控制权。

使用 WinBoat 在 Linux 上开发 Windows 应用程序

工作原理:KVM、Docker 和 FreeRDP 的底层原理

WinBoat 的核心技术优势在于融合了多种成熟技术:KVM 用于硬件辅助虚拟化,Docker 作为基础架构编排器,FreeRDP/RemoteApp 用于在 Linux 桌面上创建窗口。您不会看到传统的虚拟机“监视器”:您会看到可分离、可停靠、可调整大小和可移动的窗口,就像任何其他原生应用程序一样。

为了确保流畅的工作流程,WinBoat 会将您的 Linux 用户目录挂载到 Windows 客户机环境中。文件共享即时完成,无需额外的网络设置。您可以打开特定的 Windows 应用程序,使用 Alt+Tab 切换桌面,在桌面之间移动应用程序,或者根据需要打开整个客户机桌面。

这种方法避免了常见的 Wine 调用转换错误,因为它根本不进行任何转换:它运行的是真正的 Windows 系统。但作为回报,它比简单的兼容层消耗更多资源,如果你的电脑配置不高,这一点需要注意。

在界面设计方面,WinBoat 采用基于 Electron 的现代化界面,使安装和启动过程更加便捷。其理念是用户只需进行必要的操作:选择您的偏好设置,其余一切都由系统自动完成。

  用于排查电脑问题的 Windows 终端命令

要求和与发行版的兼容性

为确保一切顺利,建议您仔细阅读系统要求清单。WinBoat 需要BIOS/UEFI 中启用虚拟化(Intel VT-x/AMD-V),并且 Linux 内核需要能够访问 KVM。如果 KVM 被阻止或禁用,无论您如何正确安装其他组件,WinBoat 都无法启动。

合理的最低配置要求如下:虚拟机需要 4 GB 内存(理想情况下为 8 GB 或更多,以避免主机过载),CPU 至少需要双线程,以及大约 32 GB 的可用空间,最好位于 /var 目录下,用于下载镜像和存储数据。您还需要 Docker 和 Docker Compose v2,在 WinBoat 中,它们必须以“rootful”模式(具有正常的 Docker 权限)运行。

重要提示:目前不支持 Docker Desktop 、无根容器或 Podman。在用 Podman 套接字替换 Docker 的环境中,与虚拟机的通信会中断。我们已将此功能列入开发计划,但目前仍存在一些网络问题需要解决。

在远程桌面方面,WinBoat 依赖于带有音频功能的 FreeRDP 3.xx版本。请确保已安装该版本,以避免任何声音问题。另外,运行 WinBoat 的用户必须属于 `docker` 用户组,以避免频繁使用 `sudo` 命令。

至于发行版,选择范围很广。如果你的发行版支持 AppImage、.deb 或 .rpm 文件格式,那么它很可能可以正常工作(例如 Ubuntu、Fedora、Mint 等),前提是你满足上述要求并正确配置了 Docker 和 KVM。

下载、安装和可用格式

该项目发布的构建版本便于用户快速上手。您可以选择AppImage(便携版)或解压后的软件包(“Unpacked”),后者只需运行 `linux-unpacked/winboat` 目录下的二进制文件即可。在某些发行版上,您还可以找到社区或仓库提供的 .deb 或 .rpm 文件(如有)。

首次安装会下载并部署 WinBoat 使用的基础 Windows 镜像。除非您选择从头开始,否则无需从头开始:向导会自动完成大部分流程,只需几分钟,您的环境即可准备就绪。在某些情况下,如果您需要满足特定要求的 Windows 安装,还可以选择使用自定义 ISO 镜像。

初始配置时间在正常网络连接下大约需要半小时。请确保在此期间网络连接稳定。配置完成后,启动 Windows 应用或打开桌面速度会快得多。

请记住,您需要自行安装一些组件:Docker、Compose v2、FreeRDP 3、docker 用户组以及 iptables 模块(iptables 和 iptable_nat)。完成这些设置后,其余步骤就相当简单,应用程序会引导您完成。

从源代码和开发模式编译

如果您希望在自己的机器上构建 WinBoat,只要您拥有所需的依赖项,整个过程就非常简单。开始之前,您需要安装 NodeJS 和 Go。以下是经过总结和调整的基本步骤:

git clone https://github.com/TibixDev/WinBoat
npm i
npm run build:linux-gs

生成的二进制文件将出现在 dist 文件夹中,其中包含 AppImage 和解压后的版本。对于开发环境,您可以使用以下命令启动本地环境: npm 运行开发 编译“来宾服务器”后 npm run build-guest-server. 这加快了迭代速度 无论您要贡献还是调试。

USB、外围设备和硬件设置

USB 直通功能在图形界面中很常见,但今天 可以手动使用。安装 WinBoat 后,编辑布局文件 ~/.winboat/docker-compose.yml 向客户机公开特定的 USB 设备。更改后,使用以下命令应用:

  如何升级到 Windows 11 25H2:终极指南

docker-compose down
docker-compose up -d

只要稍加注意,你就可以将读卡器、加密狗或其他外围设备连接到 Windows 虚拟机。在图形用户界面正式集成这些控件之前,这是一种有效的替代方案。

图形加速和 GPU 直通状态

目前,WinBoat 中尚无稳定可用的 GPU 直通功能。计划采用半虚拟化驱动程序,但尚未有成熟且可供通用的解决方案。我们已探索过 MVisor Win VGPU 驱动程序(该驱动程序在其他虚拟机管理程序中取得了令人鼓舞的结果),并密切关注 DirectX 驱动程序的开发进展。

为了避免使用第二块GPU,研究人员也对Looking Glass(尤其是其间接显示驱动程序)进行了研究,但迄今为止,尝试的结果要么是黑屏,要么是无法发布的结果。社区和这些组件的作者都表示,它尚未准备好可靠使用。

实际结果显而易见:目前该项目并不擅长运行AAA级游戏和高要求的3D软件。如果您追求的是最高画质的游戏体验,那么在专用虚拟机(以及兼容的硬件)上使用双启动或PCIe直通方案仍然是更现实的选择。

WinBoat 与 Wine、Proton 和传统虚拟机

与 Wine 相比,WinBoat 简直是天壤之别。Wine将 Windows 调用转换为 Linux 调用,如果转换正确,它轻量级且速度极快。但它在处理现代应用程序或具有非常特殊依赖项的应用程序时会遇到困难。WinBoat 通过直接运行 Windows 来避免这一缺陷,但代价是会占用更多的 CPU、内存和存储资源。

Proton(Valve 的 Wine 版本)专注于 Steam 游戏,并取得了巨大的改进。然而,其严格的反作弊机制和某些内核依赖性仍然是其发展的障碍。在生产力和企业软件领域,WinBoat 因其可靠性而备受好评。

与 VirtualBox 或 VMware 相比,WinBoat 在日常使用中更加“轻量级”:您无需像以前那样管理虚拟磁盘或分配固定的资源,而且 Windows 与主机的集成也更加流畅。即便如此,也不要忘记,其底层仍然是一个完整的 Windows 系统,因此也需要消耗一定的资源。

具有反作弊功能的游戏和软件

如果你热衷于使用内核级反作弊系统的竞技类在线游戏,那就没有捷径可走:这些系统会检测到虚拟化并阻止启动。玩一些配置要求不高或较老的游戏或许还能勉强应付,但WinBoat并非为硬核游戏平台而设计。对于这类游戏,双系统启动或使用专用的Windows电脑才是更明智的选择。

然而,对于休闲游戏或辅助游戏工具(启动器、非内核依赖型模组等),考虑到虚拟化的开销和缺乏完整的 3D 加速,其性能可能已经足够。

实际应用、用例和现实世界兼容性

WinBoat 的真正优势在于其能够出色地运行 Wine 难以驾驭的生产力工具和专业软件。例如 Affinity Photo、Paint Tool SAI v1.0、部分 Adob​​e 套件、Acrobat 和 AeroChat,以及 Microsoft Office(包括 Office 365)。对于工作室、办公室和企业环境而言,这种可靠性比纯粹的性能更为重要。

  如何在 Windows 11 上安装并充分利用 PowerShell

对于那些即将放弃 Windows 10 的用户来说,WinBoat 也极具吸引力,因为 Windows 10 的支持将于 2025 年 10 月 14 日结束。如果您的硬件不符合 Windows 11 的要求,或者您只是更喜欢 Linux,WinBoat 可以大大降低您在过渡期间丢失关键 Windows 工具的担忧。

在日常使用中,能够像打开原生应用程序一样打开特定的 Windows 应用,从主屏幕共享文件,并保持稳定性,这真是一种享受。延迟是存在的——毕竟它是一个虚拟客户端——但在办公应用、会计、管理、二维设计或商业工具中,通常完全可以接受。

项目状态、许可证和贡献

WinBoat 目前仍处于稳定测试阶段。可能会出现一些漏洞、网络问题或特定配置的限制。尽管如此,其改进速度良好,项目社区也在不断壮大,为 Ubuntu、Fedora、Arch 和其他发行版提供了指南和贡献。

本项目采用MIT 许可证,因此您可以贡献代码、文档或反馈。Pull Request 应侧重于技术方面(包含政治、色情或其他无关内容的贡献将不予考虑)。如果您想提供帮助,最好的方法是审阅问题、提出改进建议,并提交定义清晰、文档齐全的 Pull Request。

关于交流方面,一些论坛帖子和参考网站会显示标准的隐私和 Cookie 通知(例如 Reddit 或 X 嵌入等平台)。这些通知是这些网站特有的,不会影响 WinBoat 的功能;它们仅作为参考资料的背景信息。

保持流程顺畅的快速提示

在开始安装之前,请花五分钟时间验证 您的用户在 docker 组中 并且你可以在没有 sudo 的情况下运行容器。如果不是,请使用 sudo usermod -aG docker tu_usuario 然后重新登录。

请确认 FreeRDP 版本为 3.xx 且支持音频输出。早期版本可能会导致音频问题。此外,请检查 /var 目录下是否有足够的空间,以免 Windows 镜像和数据在部署过程中丢失。

在 BIOS/UEFI 中启用 VT-x/AMD-V,进入 Linux 系统后,使用常用命令验证 KVM(例如,列出模块或检查权限)。如果没有正常工作的 KVM,无论其他所有设置多么正确,WinBoat 都无法运行。

如果您计划在客户机中使用 USB 设备,请记下它们的标识符并记录对它们所做的任何更改。 ~/.winboat/docker-compose.yml. 迷你清单可以节省您的时间 升降集装箱或更换设备时。

WinBoat 提供了一种务实的解决方案:它通过容器化的 Windows 环境,集成了 Windows 系统,并采用比传统虚拟机更轻量级的方式,实现了在 Linux 系统上近乎完全兼容 Windows 应用。虽然它并非运行 AAA 级游戏或 GPU 密集型任务的理想工具,但对于生产力应用、企业套件以及 Wine 或 Proton 无法很好地处理的软件而言,它却是一个可靠的桥梁。如果您希望在 Linux 系统上获得自由,同时又不放弃您常用的 Windows 程序,那么 WinBoat 无疑是您日常使用的理想之选。