Winboat:不装虚拟机,直接在 Linux 桌面上启动 Windows 程序
2026/9/6 16:07:32 网站建设 项目流程

Winboat:不装虚拟机,直接在 Linux 桌面上启动 Windows 程序

【免费下载链接】winboatRun Windows apps on 🐧 Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat

在 Linux 桌面上双击一个 .xlsx,想直接打开它的 Windows 程序?Winboat 让 Windows 跑在 Docker/Podman 容器里,再用 FreeRDP 的 RemoteApp 协议把应用窗口直接投影到你的 Linux 桌面上——看起来就像原生程序,而不是一个套了壳的虚拟机窗口。

克隆仓库,装完就能用

最短路径:

git clone https://gitcode.com/GitHub_Trending/wi/winboat cd winboat && bun i && bun run build:linux-gs

应用启动后,配置向导里先选 Windows 版本(constants.ts 里维护了 Windows 10/11 的 Pro、LTSC、Enterprise 以及自定义镜像),再选语言,剩下下载镜像、起容器、装 Guest Server 这些事交给它。

真正跑起来之后,Windows 侧的活由一份脚本包办:install.bat。它导入注册表配置、建目录、把整个组件包拷进去,骨架就这几行:

set WB_DIR=C:\Program Files\WinBoat if not exist "%WB_DIR%" mkdir "%WB_DIR%" "%NSSM%" install WinBoatGuestServer "%WB_DIR%\server\winboat_guest_server.exe" "%NSSM%" set WinBoatGuestServer Start SERVICE_AUTO_START netsh advfirewall firewall add rule name="Allow WinBoat API 7148" dir=in action=allow protocol=TCP localport=7148

建目录之前还有一步容易被忽略的:把安装目录加进 Defender 排除列表,避免文件刚拷进去就被杀软扫描卡住。

把 exe 挂成系统服务

install.bat 的关键词是 nssm——一个把普通 exe 变成 Windows 系统服务的小工具:

"%NSSM%" install WinBoatGuestServer "%WB_DIR%\server\winboat_guest_server.exe" "%NSSM%" set WinBoatGuestServer Start SERVICE_AUTO_START

exe 本身不会自己活过重启,挂成服务之后相当于给程序办了张长期身份证:开机自动上岗、崩溃自动拉起、还能在"服务"管理器里直接看到它。脚本里实际注册了两个服务,都以 SYSTEM 身份运行:API 服务WinBoatGuestServer,和一个永不升级自己、专门给前者换版本的更新服务WinBoatGuestServerUpdater

两个服务,防火墙各留一个口子

Windows 端的 API 服务在 7148 端口听请求(端口号在 Linux 侧的 constants.ts 里写死),更新服务在 7150。Linux 宿主并不直连 Windows,而是通过容器端口映射够到容器里的 7148,映射表里每一项都绑在 127.0.0.1 上,外网根本摸不到;Windows 侧的防火墙也只为 7148 和 7150 各加了一条 TCP 入站规则。

网络面就是这么窄:两个端口,只有本机可达,再加上安装时生成的共享密钥 guest_token——宿主每次请求都要带对钥匙,对不上直接被拒。你在 Linux 桌面上点开一个 Windows 程序,本质就是 Linux 应用对着这个 API 发了一次请求。

按你的环境改三处

  • 安装位置由 install.bat 开头的WB_DIR决定,改一个变量就能把整套组件挪到你习惯的位置,企业环境放到统一管理的目录下也省事。
  • Windows 版本在安装向导里选,装完不能换,只能重装;RDPApps.reg 在首次安装时导入,干的主要是关掉远程桌面应用的程序白名单、让键盘布局跟服务端走,目的是 RemoteApp 拉起来顺手。
  • Guest Server 的升级不用动手:更新服务收一份新版压缩包,先解压校验,再走停旧服务、换目录、起新服务的流程;新服务健康检查不过就自动回滚到旧版,坏的版本留不下痕迹。

Winboat 适合"Linux 为主,但手里有几款离不开的 Windows 程序"的团队:不用再为每个应用单开一台虚拟机或挂一条 RDP 会话。项目目前还是 beta,踩到坑得有点排错耐心;想继续深挖,可以从 FreeRDP 的窗口合成看起,也可以读读 Linux 侧向 Guest Server 下指令的 exec-helper.ts。

【免费下载链接】winboatRun Windows apps on 🐧 Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询