在 Linux 上跑 Windows 应用:Winboat 从构建到常用的完整指南
在 Linux 上跑 Windows 应用Winboat 从构建到常用的完整指南【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat公司内网系统、某款没有 Linux 版的行业软件、一个只认 Windows 的老编辑器——总有些程序非 Windows 不可。Winboat 就是为这个场景做的它把整个 Windows 装进一个容器里你在 Linux 桌面上点一下对应的 Windows 应用就作为一个独立窗口弹出来和你自己的程序混排在一起。整篇文章走的是从源码构建的路径需要你先装好 Docker 和 FreeRDP全程下来不复杂跟着做就行。原理一句话容器里套了一台虚拟机先把心智模型立住Winboat 不是双系统也不是远程桌面软件。Windows 以虚拟机形式运行在 Docker或 Podman容器内宿主机侧是一个 Electron 写的管理界面Windows 侧常驻一个用 Go 编写的 Guest Server 服务应用窗口则通过 FreeRDP 的 RemoteApp 协议渲染成 Linux 桌面窗口。理解了这个结构后面所有报错和配置就都好对号入座了界面管不了系统多半是 Guest Server 没起来窗口黑屏没声音多半是 FreeRDP 版本不对容器起不来多半是 KVM 的锅。三条命令确认这台机器能不能跑Winboat 的硬性门槛就四项用命令逐条过CPU至少 2 个线程。nproc看一下建议 4 核起步Windows 跑起来才不憋屈。内存至少 4 GB建议 8 GB 以上。free -h看可用量注意是给 Windows 预留的不算上你 Linux 桌面本身的开销。磁盘安装盘符留 32 GB 空闲重度使用建议 64 GB。df -h确认。KVM必须在 BIOS/UEFI 里开启硬件虚拟化。执行下面的命令输出一行kvm说明内核模块已加载lsmod | grep kvm⚠️ 这一步很多人栽跟头/dev/kvm存在但你ls它报 permission denied说明模块加载了但你的用户不在 kvm 组里。执行sudo usermod -aG kvm $USER然后注销重新登录newgrp不一定生效直接重启最稳。装 Docker只用原生引擎不要 Docker Desktop安装 Docker Engine 并把你自己的用户加进 docker 组这样以后不用每次 sudocurl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER加完组同样要重新登录。回来验证两件事两条都有版本号输出才算齐活docker --version docker compose version⚠️ Docker Desktop 目前不被支持用它的用户会遇到各种难以排查的问题。想要容器引擎装上面这个原生的就行。装 FreeRDP认准 3.x 且带声音支持FreeRDP 负责把 Windows 应用画面传回来版本要求是3.x且要带声音支持否则窗口里是静音的# Debian / Ubuntu sudo apt install freerdp3-x11 # Fedora / RHEL sudo dnf install freerdp装完xfreerdp --version看一眼主版本号。不想要 Docker 的话也可以走 Podman 路线但注意用apt装的 Podman 在很多发行版上版本太老必须4.x 以上才装得动。构建 Winboat装 Bun 和 Go然后跑三条命令源码构建只依赖两个工具Bun前端构建和Go编译 Guest Server。两个装好后克隆仓库并安装依赖git clone https://gitcode.com/GitHub_Trending/wi/winboat cd winboat bun i下面这条命令把 Guest Server 交叉编译成 Windows 二进制产物在dist/下装 Windows 时会自动带过去bun run build:gs最后启动应用图形化向导会跟着弹出来bun run dev向导里要做的就四件事向导分几步你只做选择选 Windows 版本Windows 10 或 11 专业版顺带选系统语言。注意向导会提示这些设置装完就不能改了想换只能重装。分资源给容器定内存、CPU 核数、磁盘大小参照后文资源别给满那节的建议。设用户Windows 侧的用户名和密码。文件共享默认把 Linux 主目录挂进 Windows保持默认即可。剩下的下载、写盘、配置全自动中间它会自己拉起容器和安装任务你只需要等。跑通之后三个页面解决 90% 的日常主界面是状态面板两个绿字是关键信号Guest API 在线、容器在运行。下面一排是 CPU、内存、磁盘占用Windows 卡不卡先看这里。Apps 页面列出容器里所有可启动的程序。点哪个哪个就以独立窗口出现在你的 Linux 桌面上——不需要进入完整的 Windows 桌面。想进完整桌面时列表第一项 Windows Desktop 就是入口。文件不用来回拷。你的 Linux 主目录默认就挂在 Windows 里打开文件资源管理器网络邻居里能直接看到主机双向读写。四个最常见的坑按出现频率排KVM 权限。启动时报/dev/kvm permission denied按前面说的把用户加进 kvm 组后重启。端口被占。Winboat 默认要用三个端口3389RDP、8006noVNC 管理界面、7148Guest Server API。其中 3389 最容易被别的远程桌面服务占掉。应用起来后连不上时先用sudo ss -lntp | grep -E 3389|8006|7148排查是谁占了。安装卡住不动。在终端看容器本身docker ps --filter namewinboat容器在跑但进度停滞多半是资源给少了内存低于 4 GB 时安装期会非常慢或者系统镜像源慢。外设直通。USB 直通目前只在 Docker 路线下可用Podman 路线暂不支持智能卡直通已支持。资源别给满留一半给 Linux 自己向导里分资源时别照着本机总量给。经验值办公类浏览器、Office 套件2–4 GB 内存、2 核足够。开发工具IDE、数据库、编译环境4–8 GB 内存、4 核。视频剪辑、3D 类8 GB 以上、6 核以上并且建议显卡强的机器——但这类负载对集成体验要求高属于能跑但别指望流畅。无论哪档记得 Linux 桌面本身还要 2–4 GB给 Windows 分多了宿主机会先卡死。这套方案适合谁不适合谁只有一两个非 Windows 不可的应用最适合装完即用不用维护第二台机器。日常主力工作流是 Linux偶尔要 Windows 桌面也适合Windows Desktop 入口随时可进完整桌面。重度游戏、3D 渲染谨慎。容器套虚拟机的嵌套结构决定了它吃资源帧率和延迟都不是它的强项。愿意折腾的开发者直接按本文路径从源码构建Guest Server 的源码就在仓库的 guest_server/ 目录想改什么改什么。最后丑话说在前Winboat 目前还是 beta 状态官方 README 也明说expect hiccups and bugs。遇到问题先按本文排坑一节自查查不了再去 issues 里找同类反馈。跑通之后你会发现Linux 上没有这个软件这句话以后用得越来越少了。【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考