新闻详情

新闻详情

首页 / 资讯中心 / 详情

Winboat 自动化部署:Windows 客制服务在 Linux 虚拟机里跑起来的完整路径

发布时间:2026/9/6 17:06:56来源:尧图网络
Winboat 自动化部署:Windows 客制服务在 Linux 虚拟机里跑起来的完整路径
Winboat 自动化部署Windows 客制服务在 Linux 虚拟机里跑起来的完整路径【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat你是不是也被这种问题卡住过做了一个在 Linux 上跑 Windows 应用的工具可 Windows 那边每次虚拟机重启后都得手动把辅助进程拉起来、等它就绪才能继续干活Winboat 正是解决这一类问题的项目——它让你用 Linux 直接运行 Windows 应用。其中的关键是一个藏在 Windows 虚拟机里的小 HTTP 服务Guest Server负责打通两边的通信而它是怎么被装进 Windows 并常驻运行的就是这篇文章要讲的内容。方案全貌先装什么、谁来装Winboat 本身是一个 Electron 应用它在 Docker 或 Podman 容器里跑一台完整的 Windows 虚拟机。Linux 端的主程序通过 Guest Server 与 Windows 通信这个服务在虚拟机里监听一个 HTTP 端口提供应用列表、系统指标、健康检查等接口显示层面则靠 FreeRDP 配合 Windows 的 RemoteApp 协议把 Windows 应用画成原生 Linux 窗口。部署流程藏在安装阶段Electron 应用在启动虚拟机之前会先把 Guest Server 二进制、部署脚本、nssm.exe 和认证 token 打包成一个目录挂载成虚拟机里的C:\OEM。Windows 首次启动的无人值守安装会触发install.bat执行一次把整个文件落地 服务注册 防火墙放行跑完。对用户来说这一步完全透明。安装脚本怎么落地先看文件部署。install.bat把C:\OEM里的内容全量复制到C:\Program Files\WinBoatxcopy %OEM_DIR%\* %WB_DIR%\ /Y /E/E保证子目录递归复制/Y跳过覆盖确认这两点都是无人值守执行的前提。还有个细节脚本会先给目标目录加 Windows Defender 排除项再复制。虚拟机磁盘读写频繁让杀软实时扫描刚写入的二进制会明显拖慢安装。接下来是核心动作——服务注册。Guest Server 不是普通进程而是通过 nssm 包装成标准 Windows 服务%NSSM% install WinBoatGuestServer %WB_DIR%\server\winboat_guest_server.exe %NSSM% set WinBoatGuestServer Start SERVICE_AUTO_START %NSSM% set WinBoatGuestServer ObjectName NT AUTHORITY\SYSTEM用 SYSTEM 账户运行意味着服务不依赖任何用户登录也避免了用户密码变更导致服务失效这类常见坑设置自动启动后虚拟机每次开机 API 都直接可用。最后脚本还用 netsh 给 7148主 API和 7150更新服务各加一条入站防火墙规则——这等于只开这两个口其余默认全拦。更新服务怎么做到回滚第二个服务WinBoatGuestServerUpdater负责 Guest Server 的升级设计值得多看一眼。Electron 端把新版 zip 推到 7150 端口更新器先解压到server.new停掉旧服务再用 rename 交换目录、启动新服务并等健康检查if err : startService(guestServiceName); err nil waitHealthy(guestHealthURL, healthTimeout) { os.RemoveAll(oldDir) return nil }新版本健康检查不过就自动把server.old换回去。源码见 swap.go这里用同卷 rename 代替文件拷贝让交换接近原子操作——中途崩掉也不会留下新旧混在一起的半吊子状态。实战细节与避坑端口不通→怎么查服务明明在跑Linux 端却连不上时先在虚拟机里用netsh advfirewall firewall show rule nameall确认 7148 规则存在再看容器的端口映射。怎么解所有端口号集中在 constants.ts 定义改端口要同步动三处——该文件里的GUEST_API_PORT、install.bat里的 netsh 规则与服务 Description、以及 main.go 里的ListenAndServe监听地址。服务无响应→怎么查先在虚拟机里跑nssm status WinBoatGuestServer确认服务真的处于 Running再看 nssm 重定向的日志。怎么解状态正常但 API 不通多数是防火墙或容器端口映射问题而不是服务代码问题别急着怀疑二进制坏了。改安装路径→怎么改需要动三处——install.bat里的WB_DIR变量、nssm set ... AppDirectory那一行、以及 Defender 排除路径。只改其中一处服务的工作目录就会和实际文件位置错位。收尾回到开头的场景装上 Winboat 之后Guest Server 会在虚拟机里自动注册成 Windows 服务、随系统自启、升级自带回滚把 Windows 里的服务跑起来并保住这件事被一条批处理闭环掉了。这种挂载一个目录 一次无人值守安装的思路也值得你在做跨系统集成时参考。【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Oracle AWR报告实战:从快照机制到等待事件,DBA性能诊断全攻略 2026/9/6 17:43:01

Oracle AWR报告实战:从快照机制到等待事件,DBA性能诊断全攻略

简介:一份面向 Oracle 数据库管理员与性能优化人员的 AWR 报告分析指南,由黄伟波撰写,系统讲解 AWR(自动工作负载库)从导出到分析的全流程。内容涵盖 AWR 概念、统计信息分类、STATISTICS_LEVEL 参数调优、报告核心元素…

阅读更多 →
生成初始归并段算法实现 2026/9/6 17:43:01

生成初始归并段算法实现

生成初始归并段算法的目的是减少初始归并段个数&#xff0c;降低归并趟数和磁盘读写次数&#xff0c;提高外部排序归并效率 该生成算法在数据结构:用面向对象的方法和c语言描述 第二版 殷人昆著 10.3.3节有详细描述 本文给出的该算法的C代码是: #include <iostream> #inc…

阅读更多 →
Java期末复习全攻略:从基础语法到多线程的考点拆解 2026/9/6 17:43:01

Java期末复习全攻略:从基础语法到多线程的考点拆解

简介&#xff1a;Java语言程序设计期末考试复习资料&#xff0c;面向高校计算机相关专业学生&#xff0c;用于期末备考和知识点巩固。资源将Java基础核心内容与常见考题相结合&#xff0c;涵盖考试题型分布&#xff08;填空、单选、简答、程序填空、程序设计&#xff09;、Java…

阅读更多 →
RIME优化Transformer-LSTM实现多变量时间序列预测系统 2026/9/6 17:43:01

RIME优化Transformer-LSTM实现多变量时间序列预测系统

简介&#xff1a;面向具备Python与深度学习基础的技术人员&#xff0c;这份资源以多变量回归预测为核心&#xff0c;完整呈现RIME霜冰优化算法与Transformer-LSTM组合模型的融合项目实例。文档从实际项目出发&#xff0c;覆盖数据预处理、特征工程、模型构建、优化训练、性能评…

阅读更多 →
Wekan数据导入指南:3种格式快速迁移你的看板数据 2026/9/6 17:43:01

Wekan数据导入指南:3种格式快速迁移你的看板数据

Wekan数据导入指南&#xff1a;3种格式快速迁移你的看板数据 【免费下载链接】wekan The Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . PR source trans…

阅读更多 →
openEuler 22.03 sp1 更新openssh 10.0p2 —— 筑梦之路 2026/9/6 17:40:00

openEuler 22.03 sp1 更新openssh 10.0p2 —— 筑梦之路

华为欧拉openEuler制作openssh 9.1/9.2/9.3 p1 rpm——筑梦之路_欧拉构建openssh-CSDN博客 上面是需要修改的sshd_config配置&#xff0c;将这3行注释掉。 附上22.03 sp1的yum源文件 # cat openEuler.repo #generic-repos is licensed under the Mulan PSL v2. #You can use t…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞