如何在 Linux 上把 Windows 应用跑成原生应用:WinApps 5步部署指南
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
开一个 Excel,却要开整台虚拟机
你日常在用 Ubuntu,某天要用 Excel 处理一份报表、用 Photoshop 改一张图,打开的却是一整台 Windows 远程桌面:文件在屏幕的另一头,剪贴板时灵时不灵,每次都要来回切换。
WinApps 是一款免费开源工具,让 Microsoft 365、Adobe 这类 Windows 应用能在 Linux(Ubuntu/Fedora 等发行版,GNOME/KDE 桌面)上直接运行,装完后它们就像 Linux 系统自带的应用。这篇教程带你走完从零到第一次启动的完整路径。
WinApps 是什么,适合谁
一句话说清:WinApps 在虚拟机里(Docker、Podman 或 libvirt 都行)运行 Windows,自动扫描其中已安装的应用,在你的 Linux 桌面上生成对应快捷方式,再借助 FreeRDP(一个免费的远程桌面协议客户端)把单个应用窗口渲染出来,而不是整个 Windows 桌面。它适合主力用 Linux、偶尔要用 Office、Adobe 等指定 Windows 软件的开发者、设计师和办公用户。
部署效果:完成后你能直接得到什么
- Windows 应用带着原生图标和名称出现在应用菜单里,与 Linux 应用并列;
- 双击一个 Excel 文件,直接打开真正的 Excel;
- 文件不用来回拷贝:Windows 内可通过
\\tsclient\home直接访问你的 Linux 家目录; - 可选的 WinApps Launcher 提供一个系统托盘入口,管理 Windows 的开关机、暂停、重启,并一键启动应用。
实际效果如下图:
⚠️ 开始前:环境自查清单
- CPU 必须支持硬件虚拟化(Intel VT-x / AMD-V),这是 KVM 虚拟化后端接近原生性能的前提;
- 系统:Ubuntu、Fedora 等主流发行版,配 GNOME/KDE/XFCE 桌面;
- Windows 版本:需要 Windows 10/11 的专业版、企业版或 Server 版,家庭版不支持 RDP 应用,这是部署中最常踩的坑;
- 需要下载的文件:Windows 安装 ISO;走 libvirt 路线时还要 VirtIO 驱动 ISO(让虚拟磁盘和网络更快);
- 官方文档:Docker/Podman 方案(自动化程度高,新手推荐)与 libvirt 方案(可自定义更多参数,如 GPU 直通)。
5步快速上手:从零到第一个应用
- 建好 Windows 虚拟机。按 Docker 方案文档 用 compose.yaml 启动容器,在浏览器 VNC 页面里完成 Windows 安装;或按 libvirt 文档自建虚拟机,名称建议保持默认的 RDPWindows。
- 装 Linux 端依赖。用你的发行版包管理器安装 README 列出的小套装,核心是 FreeRDP 客户端(freerdp3-x11)。
- 写配置文件。创建
~/.config/winapps/winapps.conf,填入 Windows 用户名、密码、地址和后端类型(WAFLAVOR)。README 里有带逐行注释的完整模板,照着填即可。 - 先手动测 RDP。用 FreeRDP 手动连一次虚拟机,确认能看到 Windows 桌面,顺手接受证书。这一步能帮你把问题定位在连接层,而不是安装器里。
- 运行安装器。执行项目根目录的 setup.sh 脚本,在交互式向导里勾选要暴露到 Linux 侧的应用,完成后应用菜单里就会出现快捷方式。
4个功能亮点:不只是"能跑"
- 任意应用都能暴露。WinApps 会扫描注册表里所有已安装的可执行程序,不局限于内置清单;社区测试过的 Office、Adobe 应用预置了高清图标和文件类型关联,文件管理器能按扩展名自动选对应用。
- 文件管理器集成。在 Nautilus 里右键文件,"打开方式"中就会出现 Windows 应用,打开 Word 文档不用再切换系统。
- 文件双向可达。
\\tsclient\home挂载让 Windows 内直接看到你的 Linux 家目录,日常读写不用传文件。 - 托盘管理组件。WinApps Launcher(可选安装)在系统托盘里就能启动、暂停、重启 Windows,并列出一个应用列表供一键启动。
日常使用与进阶配置
- 新增应用:在 Windows 里装了新应用后,运行
winapps-setup --user --add-apps重新扫描,向导和初次安装一样勾选即可; - 手动跑未收录应用:
winapps manual "C:\完整路径\应用.exe",无需改动安装器; - 调参数:编辑 winapps.conf 可改 RDP_SCALE(画面缩放,支持 100/140/180,适合高分屏)、AUTOPAUSE(闲置多少秒后自动暂停 Windows,默认 300 秒,省资源)、RDP_FLAGS(追加 FreeRDP 参数,如多屏加 /multimon);
- 调资源:Docker 方案改 compose.yaml 里的 RAM_SIZE 和 CPU_CORES,改动后重建容器,数据不丢;libvirt 方案直接在虚拟机管理器里改内存和核心数;
- 排障日志:在配置文件里开启 DEBUG,每次启动会写入
~/.local/share/winapps/winapps.log。
排坑指南:4个最常见的问题
现象一:连接 RDP 时提示证书名称不匹配。原因:~/.config/freerdp/server/目录下的旧证书与当前虚拟机对不上。 处理:删除对应的<IP>_3389.pem文件,重新连接即可自动生成新证书。
现象二:Windows 安装时看不到任何磁盘。原因:没有挂载 VirtIO 驱动 ISO,安装程序认不出虚拟磁盘。 处理:在虚拟机管理器里重新添加驱动 ISO 为 CD-ROM,安装时点"加载驱动程序"并指向该 ISO。
现象三:连接一切正常,但应用快捷方式起不来。原因:RDP 应用需要专业版/企业版/Server 版 Windows,装的是家庭版。 处理:用合格版本重装 Windows,此项请在部署前就自查好。
现象四:安装器报告找不到虚拟机(libvirt 方案)。原因:虚拟机名称不是 RDPWindows,或 libvirt 环境变量未配置。 处理:把虚拟机命名为 RDPWindows,或在配置文件中修改 VM_NAME;同时确认 Windows 侧已导入 RDPApps 注册表文件 开启 RDP 应用支持。
一句话收尾
WinApps 把"Linux 上用 Windows 应用"压缩成 5 步:建虚拟机、装依赖、写配置、测连接、跑安装器。遇到细节卡住,先翻 docs/docker.md 和 docs/libvirt.md,应用清单可参考 apps/ 目录下的配置模板,仍解决不了就向项目提 issue 求助。
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考