WinApps 完整指南:在 Linux 上运行 Windows 应用,10 分钟装好 Office 和 Adobe
【免费下载链接】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
WinApps 是一个开源免费的工具,让 Microsoft Office、Adobe 全家桶这些 Windows 应用直接跑在 GNU/Linux 的 GNOME、KDE 或 XFCE 桌面里——从应用菜单里点开即用。它的思路不复杂:把 Windows 装进一台后台虚拟机,再用 FreeRDP(RDP 是 Windows 自带的远程桌面协议)把单个应用窗口"投"到你的 Linux 桌面上,整个过程对使用者几乎是透明的。
如果你正在用 Linux,但工作又绕不开 Excel、Word、Photoshop,这篇文章就是为你写的。
Linux 运行 Windows 应用前,先认清三个坑
很多 Linux 用户想跑 Windows 软件时,会先撞上几堵墙:
- Wine 玩不转的重型软件:Wine(一种在 Linux 上模拟 Windows 运行环境的工具)能覆盖不少程序,但 Adobe Creative Cloud 这种带激活、带云端组件的套件,配置起来非常折腾;
- 装个虚拟机,然后天天开"窗口套窗口":直接开个 VirtualBox,你会看到一整个 Windows 桌面嵌在 Linux 窗口里,切换、拖文件都很别扭;
- 只想要那一个应用:你不想每回都用完整远程桌面,只想在应用菜单里点一下"Word"就出现 Word。
WinApps 针对的正是第三种需求:它不给你一个 Windows 桌面,而是把 Windows 里的单个应用变成 Linux 应用菜单里的一个入口。
WinApps 原理:一个虚拟机 + 一条投屏通道
整个机制拆开来只有四步:
- 在 Docker、Podman 或 libvirt(虚拟机管理工具)里跑一台 Windows 虚拟机,底层都走 KVM 硬件虚拟化,性能接近原生;
- WinApps 扫描这台 Windows,读取里面装过哪些应用;
- 为你勾选的应用在 Linux 上生成快捷方式,放进应用菜单;
- 你点快捷方式时,后台通过 FreeRDP 建立连接,只把那个应用的窗口渲染出来——和你旁边的 Firefox、终端并排摆放,看不出差别。
除了"能跑",还有几个真正提升日常体验的细节:
- Linux 的
/home目录会挂载到 Windows 里,路径是\\tsclient\home,两边文件直接互取; - Nautilus 文件管理器集成:右键任意文件,可以选择用对应的 Windows 程序打开,按文件扩展名自动匹配;
ms-word://这类 Office 链接在主机上点开时,会自动落到 Windows 子系统里的桌面版程序处理;- 可选的 WinApps-Launcher 任务栏小部件,能一键启动/暂停/重启那台 Windows 虚拟机。
我想要的软件,它跑不跑得动
直接说结论:理论上所有 Windows 应用都能跑,唯一明确的例外是带内核级反作弊的游戏组件(比如 Riot Vanguard)。
区别在于"体验完整度"。社区验证过的应用(见仓库 apps/ 目录)自带高分辨率图标和预设的 MIME 关联,装完后右键菜单、图标显示都齐全。没被社区验证过的应用也能通过扫描注册表发现,或者用手动模式直接指定 exe 路径运行,只是图标会直接从 exe 里提取,没那么精致。
按人群来看比较常见的需求:
- 办公党:Word / Excel / PowerPoint / Outlook / OneNote / Access / Publisher,覆盖 2016、2019 到 Microsoft 365(o365)各版本,还有 Visio、Project、Power BI;
- 设计与剪辑:Photoshop(CS6 / CC / 2022 / 2024)、Illustrator、InDesign、After Effects、Premiere Pro、Lightroom、Audition、Acrobat Pro、Creative Cloud 主控台,以及 Affinity 全家桶、Fusion 360;
- 开发运维:Visual Studio 2022(社区/专业/企业版)、SQL Server Management Studio、PowerShell、命令提示符、LINQpad。
你缺的不在清单里?可以照着 apps/ 里任意一个应用的配置复制一份,改个名字、换个图标就能纳入安装向导,测试没问题后欢迎提给社区。
WinApps 安装第一步:把 Windows 虚拟机立起来
装 WinApps 之前,先得有一台装好的 Windows 虚拟机。好消息是官方把最费事的部分自动化了。
Docker / Podman:最省心的路径
这是官方推荐方式,一条命令就能开始装 Windows,前提是你的 CPU 支持硬件虚拟化(KVM)。
- 安装 Docker Engine;
- 编辑仓库自带的 虚拟机模板,至少改两处:Windows 的用户名/密码(
USERNAME/PASSWORD),以及资源规格(默认 4G 内存 / 4 核 / 64G 磁盘,按需调RAM_SIZE、CPU_CORES、DISK_SIZE); - 启动安装:
docker compose --file ./compose.yaml up- 浏览器打开
http://127.0.0.1:8006,通过网页 VNC 完成 Windows 的开机设置。
装好后,开关机都只需一行命令,比如docker compose --file ~/.config/winapps/compose.yaml start,详见 Docker 虚拟机指南。Podman 用户流程一致,把命令换成podman-compose即可。
两个必须知道的前提:
- 需要 Windows 10/11,且是Pro、Enterprise 或 Server 版本——家庭版(Home)不提供 RDP 服务端,走不通;
- 虚拟机本身免费,但你需要自备合法的 Windows 授权。
libvirt:自由度更高的玩法
想要 GPU 直通、自定义网卡这类精细控制,就上 libvirt + virt-manager。代价是手动步骤明显变多:建虚拟机、配 CPU/内存、挂 ISO、装 VirtIO 驱动、装 RDP 依赖,每一步 libvirt 安装指南 里都有截图对照,跟着走即可。下面这张就是指南里分配 CPU 的界面:
如果家里现成有一台能开 RDP 的 Windows 服务器,也不用新装虚拟机——按 libvirt 文档的"最终配置步骤" 把服务配好,在配置里填上它的 IP 就能直接复用。
WinApps 安装第二、三、四步:依赖、配置、跑起来
虚拟机点亮后,剩下的安装其实就三个动作。
安装依赖
以 Debian/Ubuntu 和 Fedora 为例(其余发行版命令见 README):
# Debian / Ubuntu sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd # Fedora / RHEL sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat关键点只有一个:FreeRDP 必须是 3 版及以上。Debian 12 需要启用 backports 源才有freerdp3-x11。
写一个 5 行的配置文件
在~/.config/winapps/winapps.conf里只需填好这几项:
RDP_USER="你的Windows用户名" RDP_PASS="你的Windows密码" RDP_IP="127.0.0.1" WAFLAVOR="docker" # 或 podman / libvirt RDP_SCALE="100" # 4K 屏可试 140 / 180注意这个文件里存着密码,建好后把权限收紧:chmod 600 ~/.config/winapps/winapps.conf。另外RDP_USER/RDP_PASS必须是完整的 Windows 账户和密码,PIN 码登录那套对 RDP 无效。所有可配置项(含AUTOPAUSE自动暂停、超时时间等)README 里都有完整注释,值得翻一遍。
先裸测一次 RDP,再跑安装器
装 WinApps 前花十秒验证一下链路是通的:
xfreerdp3 /u:"你的Windows用户名" /p:"你的Windows密码" /v:127.0.0.1 /cert:tofu弹出窗口里看到 Windows 桌面,说明网络、凭据、证书三样都没问题,断开即可。
保持 Windows 开机,然后运行安装器:
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)安装向导会列出它扫描到的应用,勾选你想要的(也可以--setupAllOfficiallySupportedApps一次选齐),之后这些应用就常驻你的 Linux 应用菜单了。
WinApps 装好之后,每天怎么用
装完那一刻起,用法就和普通 Linux 程序没有区别:
- 应用菜单里点 Word,几秒后 Word 窗口出现,标题栏、最小化、多屏拖动都正常;
- 在 Nautilus 里右键一个
.docx,菜单里直接有"用 Word 打开"; - 在 Windows 应用里打开
\\tsclient\home,读写的其实是你 Linux 家目录里的文件; - 之后在 Windows 里新装了软件?跑一次
winapps-setup --user --add-apps重新检测即可; - 清单里没有的软件,可以走手动模式:
winapps manual "C:\路径\程序.exe"(PATH 里的程序直接写名字就行)。
推荐再加装 WinApps-Launcher 小部件:系统托盘里有一个菜单,列出全部已装 Windows 应用,还能直接开关/暂停/重启后台的 Windows 虚拟机,不用记任何命令。
进阶玩法与常见卡点
跑顺之后,这几个开关值得一试(都改winapps.conf的RDP_FLAGS或对应配置项):
- 多显示器:
RDP_FLAGS里加/multimon。个别 FreeRDP 版本会黑屏,遇到就回退; - 中文等非英语输入:加
/kbd:unicode,输入以 Unicode 序列发送,中英文切换更顺滑; - 闲置自动暂停:
AUTOPAUSE="on",空闲超过AUTOPAUSE_TIME(默认 300 秒,最小 20 秒)就自动暂停虚拟机,省电省内存,下次启动自动唤醒; - 排障日志:
DEBUG="true"时,每次启动都会在~/.local/share/winapps/winapps.log留下记录,出问题先看这里; - Nix 用户:不用跑安装脚本,
nix profile install github:winapps-org/winapps#winapps直接装,详见 README 的 Nix 章节。
最常见的卡点是 RDP 连接突然失败,提示"证书不匹配 / REMOTE HOST IDENTIFICATION HAS CHANGED"。九成情况是旧的 TLS 证书缓存过期了:删掉~/.config/freerdp/server/下对应<IP>_3389.pem那个文件,重新连接时会自动生成新证书。
第二类是性能不够快。先确认 BIOS 里开了硬件虚拟化(VT-x / AMD-V)、/dev/kvm可用;走 libvirt 路线的话,务必装上 VirtIO 驱动,指南中专门有一步从光驱运行virtio-win-guest-tools.exe:
下一步
到这里,从一台干净的 Ubuntu/Fedora 到菜单里点出 Word,完整链路就打通了。想继续深入,按这个顺序看比较省力:
- README.md:完整的配置项注释和 Nix 安装方式;
- docs/docker.md / docs/libvirt.md:两种虚拟机路线的详细步骤;
- apps/:每个受支持应用的图标与 MIME 配置,照着加新应用最快;
- .github/CONTRIBUTING.md:想给社区添砖加瓦(新应用、修 bug)前必读的协作约定。
装一次,用很久。Linux 桌面上多出的那个 Word 图标,就是你以后和"Linux 没有这个软件"告别的开始。
【免费下载链接】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),仅供参考