news 2026/9/17 3:19:23

WinApps 快速上手:3 步在 Linux 上原生运行 Office 等 Windows 应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WinApps 快速上手:3 步在 Linux 上原生运行 Office 等 Windows 应用

WinApps 快速上手:3 步在 Linux 上原生运行 Office 等 Windows 应用

【免费下载链接】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

在 Linux 桌面双击一个 xlsx,Windows 版 Excel 直接弹了出来——独立窗口、独立任务栏图标,不用双系统、不用来回切换。这就是 WinApps:把 Microsoft Office 等 Windows 软件无缝集成进 Linux 桌面。照着下面的路径走,从 0 到第一个 Windows 应用大约 30 分钟。

🧠 一分钟搞懂:WinApps 如何把 Windows 应用搬进 Linux 桌面

说白了,WinApps 就是在容器或虚拟机里跑一个完整的 Windows,再用 FreeRDP(远程桌面协议的开源实现)把每个 Windows 应用单独渲染成 Linux 桌面上的独立窗口。于是它们和本地应用并排躺在启动器里,你分不出谁是谁。

它适合谁:

  • 必须用某几款 Windows 独占软件,但双系统太折腾
  • 希望 Windows 应用在 Linux 上拥有独立窗口和文件关联
  • 不想自己折腾虚拟机配置,想交给脚本全自动处理

✅ 开工前 30 秒检查:硬件与系统自查清单

  • CPU 已开启硬件虚拟化,lsmod | grep kvm能查到 KVM 模块
  • 内存至少 8GB(Windows 虚拟机默认吃 4GB),磁盘剩余约 60GB
  • Ubuntu、Fedora、Arch 等主流发行版,KDE Plasma / GNOME / XFCE 桌面
  • Windows 10/11 专业版或企业版镜像——家庭版不支持 RDP,别硬试

🚀 从 0 到第一个 Windows 应用:Docker 方式安装路径

  1. 拿到项目源码。
git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps

Docker/Podman 路径会全自动完成 Windows 安装,对新手最友好;想自定义虚拟机硬件的话,docs/libvirt.md 里有 libvirt 备选路径。

  1. 在 compose.yaml 里调整资源。RAM_SIZE(默认 4G)、CPU_CORES(默认 4)按机器情况改大改小,顺手把 USERNAME / PASSWORD 改成你记得住的 Windows 账号。

  2. 启动容器。

docker compose --file ./compose.yaml up

首次启动时容器会自动下载并安装 Windows,耐心等它跑完。

  1. 完成 Windows 初始化。浏览器打开 http://127.0.0.1:8006,那是 VNC 网页端,相当于一块远程显示器。地域、账户、网络设置都在这里做,进入桌面即可关掉标签页。

  2. 装 Linux 侧依赖。Ubuntu/Debian 执行sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd,Fedora 换 dnf 装同名包即可,注意 FreeRDP 需要 v3 及以上。

🛠️ 装完必做 3 件事:写配置、测 RDP、跑安装脚本

1. 写配置文件。安装器只认~/.config/winapps/winapps.conf,最少 4 行:RDP_USER/RDP_PASS(就是 compose 里设的账号)、RDP_IP="127.0.0.1"WAFLAVOR="docker"。写完执行chmod 600,保证密码只有你自己能读。

mkdir -p ~/.config/winapps nano ~/.config/winapps/winapps.conf

2. 自己先测一次 RDP 连接。

xfreerdp3 /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu

看到 Windows 桌面就成了;提示证书信任时选"永久接受",然后关闭窗口。

3. 运行安装脚本。

bash setup.sh

它会扫描 Windows 里已装的软件,让你勾选哪些加进 Linux 应用菜单,选完快捷方式就铺好了。

🖥️ 三个真实场景:办公、设计、开发共用一张桌面

办公。你在文件管理器里双击 .docx → 按文件关联直接用 Windows 版 Word 打开。文件双向往来靠挂载实现:Linux 主目录会自动挂到 Windows 会话里的\\tsclient\home,在 Windows 里保存,文件直接落回 Linux 主目录。

设计。你在应用启动器里搜 "Photoshop" 点一下 → 桌面上弹出单独的 PS 窗口,把 Linux 这边的 PNG 拖进画布就能开始修图。

开发。你像平时一样启动 PowerShell 或 Visual Studio → 在 Windows 会话里通过\\tsclient\home打开 Linux 主目录里的代码工程,改动保存后两边同步可见。

⚡ 进阶技巧:多显示器、性能与自定义应用

  • 多显示器:RDP_FLAGS里追加/multimon,万一黑屏就撤掉。
  • 性能:4K 屏把RDP_SCALE改成 140 或 180;AUTOPAUSE="on"可让闲置 5 分钟的 Windows 虚拟机自动休眠。
  • 自定义应用:在 apps/ 复制任意一个应用目录,改 info 里的名称和可执行路径,重装即被识别。
  • 懒得配目录?winapps manual "C:\路径\app.exe"直接启动任意程序。
  • Windows 里新装了软件,跑winapps-setup --user --add-apps重新扫描收录。

🩹 卡住了怎么办:4 个高频问题一句话解法

别慌,先对号入座:

  • 应用打不开,提示 Windows 没在运行docker compose --file ~/.config/winapps/compose.yaml start把容器叫醒。
  • RDP 报证书不匹配 / 主机密钥变更→ 删掉~/.config/freerdp/server/里对应的旧证书再连,会自动重新生成。
  • Windows 里看不到 Linux 文件(\\tsclient\home缺失)→ 确认lsmod | grep iptable_nat输出非空,为空就加载 iptables 模块后重启。
  • 应用能开但卡→ 把 compose.yaml 的RAM_SIZE调大后 down + up 重建容器,数据在 volume 里不会丢;还想深挖就看~/.local/share/winapps/winapps.log里的调试日志。

一个虚拟机换来 Windows 软件进 Linux 桌面,原有工作流一点没丢。项目还在活跃维护、应用持续上新,觉得有用就去仓库点个 Star 支持一下吧。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 3:17:20

截图工具PicPick电脑版

链接:https://pan.quark.cn/s/00bfe98ac885PicPick是一款非常优秀的截图工具,它的体积十分小巧,便携易用,功能却有非常多的花样,相比系统的,甚至一般第三方截图工具要强大的多,可以说是截图的首…

作者头像 李华
网站建设 2026/9/17 3:15:26

MySQL时区参数time_zone全解析:彻底搞懂时间差8小时问题

“我的数据库明明存的是北京时间,查出来怎么少了 8 个小时?”——这个问题我在不同场合被问了不下二十次,每次排查到最后,十有八九都是time_zone参数在作怪。MySQL 的时区参数表面上就一个单词,但它牵扯到操作系统时区…

作者头像 李华
网站建设 2026/9/17 3:15:25

MySQL索引原理与SQL优化实战:从B+树到联合索引的失效场景与调优

1. 索引的本质:先搞清楚 InnoDB 到底是怎么找数据的1.1 没有索引的年代:全表扫描到底有多慢很多同学刚开始学 MySQL 的时候,对索引的印象就是“查询变快了”,但到底为什么快、快在哪个环节,其实没细想过。我们先回到最…

作者头像 李华
网站建设 2026/9/17 3:15:20

创维8H26 M9电视刷机指南:G5-V20-K5C平台固件重置与Main Program修复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华