
— 特色专栏 —
大家好,我是民工哥!
你曾经是否有过这样的烦恼。

在 Linux 平台运行 Windows 应用,折腾的够呛。
后来又尝试使用 wine 或 WinApps 来做为替换解决方案,结果却也是差强人意。
今天,给大家介绍一款免费开源的虚拟化工具,支持在 Linux 平台运行 Windows 应用。

传统虚拟机工具已过时!新的下一代虚拟化工具来了。
WinBoat 是一个基于 Electron 框架开发的开源工具,旨在让 Linux 用户通过容器化技术无缝运行 Windows 应用程序,其核心原理是利用 Docker 容器管理 Windows 虚拟机,并通过 FreeRDP 和 RemoteApp 协议将 Windows 应用窗口渲染为原生 Linux 窗口。

WinBoat 通过容器化技术运行完整 Windows 虚拟机,并利用 RemoteApp 协议实现应用原生渲染,这一方案在兼容性、集成度和用户体验上实现了突破性优化。
无缝原生体验:Windows 应用以 Linux 原生窗口呈现,操作逻辑与 Linux 软件一致。用户无需切换系统或虚拟机即可直接运行 Windows 应用,提升了使用效率和体验。

自动化部署:WinBoat 提供图形化向导界面,通过简单的安装过程自动完成镜像拉取、容器创建和 RDP 配置。用户只需选择偏好设置和规格,剩下的工作都由工具自动完成,无需手动输入复杂命令。

全量应用兼容:基于 Windows 虚拟机的技术方案让 WinBoat 具有极佳的兼容性。理论上,任何能在 Windows 上运行的应用都能通过 WinBoat 在 Linux 上运行,包括那些 Wine、Proton 甚至 CrossOver 都无法运行的应用。

文件系统互通:WinBoat 实现了 Linux 主目录自动挂载到 Windows 系统中的功能,允许用户在两个系统之间轻松共享文件。这一功能大大提升了跨平台工作的效率,使用户能够更方便地在 Linux 和 Windows 环境之间传输数据。

灵活桌面切换:WinBoat 提供两种使用模式:既可以访问完整的 Windows 桌面体验,也可以只运行单个应用程序并集成到 Linux 工作流程中。这种灵活性让用户可以根据实际需求选择最合适的使用方式。
实用附加功能:WinBoat 还提供资源监控功能,用户可以查看虚拟机的 CPU、内存使用情况。此外,它还支持 Smartcard 透传等附加功能,方便调整资源和满足特殊使用需求。
WinBoat 采用三层架构设计,各模块协同实现环境隔离与资源高效利用:
基于Vue.js构建响应式界面,提供应用管理仪表盘、系统设置面板和资源监控视图。
关键功能:应用分类展示、搜索过滤、状态指示(如通过颜色编码显示运行状态)、自定义应用添加(支持图标处理与数据持久化)。
代码实现:src/renderer/views/Apps.vue(应用列表)、src/renderer/views/Config.vue(系统配置)。
Docker容器化:Windows虚拟机作为Docker容器运行,通过docker-compose.yml定义端口映射、资源限制和持久化存储。
QEMU虚拟化:通过QMP协议(src/renderer/lib/qmp.ts)直接控制虚拟机监视器,减少硬件抽象层开销,实现动态资源调度(如CPU/内存分配)。
端口管理:PortManager类自动检测并分配可用端口,避免冲突(示例代码:getHostPort(guestPort: number))。
FreeRDP协议:将Windows应用窗口渲染为原生Linux窗口,支持麦克风/扬声器重定向、剪贴板共享和文件拖放。
QMP协议:监控虚拟机状态,执行设备热插拔、快照创建等高级操作(示例代码:executeCommand(cmd: string))。
文件系统共享:通过Docker卷挂载实现Linux与Windows文件系统互通(配置示例:services: windows: volumes: - ./shared:/mnt/shared)。


# 安装 Docker
sudo apt install -y docker.io docker-compose
sudo usermod -aG docker $USER# 将当前用户加入 docker 组
newgrp docker # 立即生效
# 安装 FreeRDP
sudo apt install -y freerdp2-x11
# 安装 Node.js 和 Go(开发环境需要)
curl -fsSL https://deb.nodesource.com/setup_23.x | sudo -E bash -
sudo apt install -y nodejs
wget https://go.dev/dl/go1.24.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.24.2.linux-amd64.tar.gz
echo'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
使用 Git 克隆 WinBoat 仓库:
git clone https://gitcode.com/GitHub_Trending/wi/winboat.git
cd winboat
#Node.js 依赖
npm install
#Go 后端依赖(仅开发环境需要)
cd guest_server
go mod tidy
cd ..
执行以下命令编译 Windows guest server:
npm run build-guest-server
执行开发模式命令启动图形化安装向导:
npm run dev
安装向导会引导完成以下配置:
验证安装状态:
安装完成后,可通过以下命令检查容器运行状态:
docker ps --filter "name=WinBoat"
正常运行时会显示类似输出:
CONTAINER ID IMAGE COMMAND STATUS PORTS
abc123 ghcr.io/dockur/windows:5.07 "/init" Up 5 minutes 0.0.0.0:3389->3389/tcp, 0.0.0.0:8006->8006/tcp, 0.0.0.0:7148->7148/tcp
启动 WinBoat:
图形界面启动:在 WinBoat 主界面的“应用”标签页中,点击应用图标即可启动。首次运行会通过 FreeRDP 建立连接,应用窗口将无缝集成到 Linux 桌面环境。
命令行启动:
# 列出可用应用
npm run dev -- --list-apps
# 启动记事本
npm run dev -- --run "Notepad"
文件关联设置:WinBoat 支持将 Windows 文件类型与对应应用智能绑定,实现双击文件自动用 WinBoat 打开。
设置步骤:
.docx),从下拉菜单中选择对应的 Windows 应用(如 Microsoft Word)。WinBoat 提供了一系列窗口管理快捷键,帮助用户快速调整窗口布局:
WinBoat 提供实时资源监控功能,可在 KDE 系统托盘查看 CPU、内存和网络使用情况。
启用高级监控:
多实例运行:WinBoat 支持多实例运行(实验性功能),允许用户同时运行多个独立的 Windows 容器。
启用步骤:打开 WinBoat 的设置界面,找到“Experimental Features”选项并启用。
复制默认配置文件作为新实例的基础:
cp ~/.config/winboat/winboat.config.json ~/.config/winboat/winboat.instance2.config.json
修改新配置文件中的关键参数(如端口映射、存储路径、资源分配等)。
使用修改后的配置文件启动新实例:
winboat --config ~/.config/winboat/winboat.instance2.config.json start
多账户支持:WinBoat 支持多账户隔离运行,不同用户的 Windows 应用运行在独立容器中,避免注册表冲突与 DLL 版本问题。
创建用户专用容器:
# 为用户 alice 创建并启动隔离容器
winboat start --user alice
# 为用户 bob 启动独立容器实例
winboat start --user bob
USB 设备直通:WinBoat 支持 USB 设备直通(开发中),允许用户将 USB 设备直接传递给 Windows 虚拟机使用。
配置步骤:
维度 | WinBoat | 传统虚拟机(如VirtualBox) | Wine兼容层 |
|---|---|---|---|
兼容性 | 运行完整Windows环境,支持所有Win32/64程序(包括Office、Adobe全家桶) | 依赖虚拟机配置,部分驱动兼容性差 | 需针对应用逐个适配,复杂软件可能崩溃 |
资源占用 | 动态分配内存,默认采用智能回收机制(可通过experimentalFeatures参数启用) | 固定分配资源,即使应用闲置仍占用内存 | 轻量级,但兼容性优化可能增加开销 |
集成度 | 应用窗口原生渲染,支持剪贴板共享、文件系统互通(Linux主目录自动挂载至Windows) | 需手动配置共享文件夹,切换系统繁琐 | 部分应用需模拟Windows环境,集成度低 |
使用便捷性 | 自动化安装,图形化管理界面 | 需手动配置虚拟机参数,命令行操作复杂 | 需编辑配置文件,调试过程繁琐 |
办公场景:在Linux环境下无缝运行Microsoft Office套件,文档编辑、格式兼容性与Windows版完全一致,同时享受Linux的稳定性与安全性。
多媒体创作:支持Adobe Premiere、Photoshop等专业软件,通过USB设备直通功能(如Wacom数位板)实现硬件级交互,创作流程与Windows端无差异。
企业内网适配:运行仅支持Windows的内网应用(如财务系统、OA平台),通过智能卡透传功能实现硬件安全模块(HSM)兼容,满足企业安全合规需求。

图形化向导引导配置,3分钟完成 Windows 容器部署,小白也能轻松上手。自动分配 CPU、内存、磁盘资源,告别手动调参烦恼。
Windows 应用窗口直接嵌入 Linux 桌面,支持 Alt+Tab 切换、多屏分栏,像原生应用一样操作。
基于 Docker + KVM 虚拟化,低延迟、高帧率,运行 Office、PS、AutoCAD 等重型软件依然流畅。
无需重启、不用双系统,在 Linux 桌面无缝运行 Windows 软件,性能流畅如原生,一键搞定所有依赖!

只需一条命令,就可以立刻开启你的 Linux+Windows 混搭之旅!🚀
你还在等什么呢?
地址:https://github.com/TibixDev/winboat
都看到这里了,觉得不错的话,随手点个赞👍 、推荐