Winboat 自动化部署指南:一键安装与 Windows 服务的无缝集成
Winboat 自动化部署指南一键安装与 Windows 服务的无缝集成【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat部署 Winboat在 Linux 上运行 Windows 应用最容易卡住人的环节在 Windows 一侧服务要手动注册、重启后失效、防火墙把端口拦掉。Winboat 的做法是把这套动作压进一份自动化部署脚本跑一遍 install.bat注册两个 Windows 服务、放行防火墙端口、配置开机自启一次完成。下文讲清现场发生了什么、为什么这么选以及坏了怎么查。一键安装时后台实际发生了什么安装向导跑完后客机的文件会先放到虚拟机内的 C:\OEM 目录然后由 install.bat 接管分四步走。第一步环境准备导入 RDPApps.reg 打开 RemoteApp 的程序白名单创建 C:\Program Files\WinBoat 目录并把它加进 Defender 排除列表——不做的话杀毒软件会在复制时实时扫描客机程序慢还会锁文件。接着文件复制xcopy /Y /E把 server、updater 两个目录连同子目录递归拷进安装目录缺一个子目录服务启动时就会找不到可执行文件直接报错。第三步系统配置用 netsh 加两条入站规则放行 TCP 7148客机 API和 7150客机更新器这两个端口被拦Linux 主机就够不到虚拟机里的服务。最后服务激活用 nssm 注册 WinBoatGuestServer 与 WinBoatGuestServerUpdater 两个服务、设为自动启动并立即拉起再登记一个开机时间同步任务跳过这步机器开着没问题重启后一切归零得手动拉起。关键命令节选自脚本原文见 guest_server/install.bat%NSSM% install WinBoatGuestServer %WB_DIR%\server\winboat_guest_server.exe %NSSM% set WinBoatGuestServer Start SERVICE_AUTO_START %NSSM% set WinBoatGuestServer ObjectName NT AUTHORITY\SYSTEM netsh advfirewall firewall add rule nameAllow WinBoat API 7148 dirin actionallow protocolTCP localport7148为什么是这些技术选型每个选择后面都跟着代价。用 nssm 封装服务而不是任务计划。nssm 是一个把任意程序包装成标准 Windows 服务的命令行工具封装后进程归服务管理器管自动启动、崩溃重启都现成。代价是系统里多了一个第三方 exe得校验完整性。自写启动项或任务计划则相反这些能力全得自己实现。以 NT AUTHORITY\SYSTEM 账户运行。这是 Windows 内置的系统级账户权限高但没有密码不会因密码忘记或修改而卡住。替代方案是普通用户账户服务会继承该用户的会话状态密码一改服务就失联。xcopy /E 递归复制。/E 连空子目录一起拷/Y 静默覆盖全程无人值守。换成单文件 copy 命令就得自己遍历子目录漏一个文件服务就起不来。防火墙只放 7148。端口定义在 src/renderer/lib/constants.tsGUEST_API_PORT 7148更新器 7150。规则只放行这两个端口而非整段是最小权限代价是日后改端口必须两处同步漏一处就断连。部署翻车自救手册服务安装失败、端口冲突怎么改服务安装失败先校验 nssm.exe先排除工具损坏用certutil -hashfile对 nssm.exe 算 SHA1和 guest_server/nssm.sha1.txt 记录的值比对不一致就重新拷贝再跑nssm version确认工具可用。端口冲突怎么改7148 若被别的程序占用服务起不来监听。必须两处同步改Linux 侧 constants.ts 里的端口常量Windows 侧 install.bat 中 netsh 规则的端口。只改一处两端对不上。服务启动后无响应status 加日志定位先看状态若已停止去 Windows 事件查看器系统日志找失败记录若在运行但主机连不上确认防火墙规则写入成功再看安装目录下的 winboat_guest_server.log 末尾几行核对监听端口是否正常。nssm status WinBoatGuestServer netsh advfirewall firewall show rule nameAllow WinBoat API 7148要改配置先动这三个地方想挪安装目录只改一处不生效。第一处是 install.bat 顶部的WB_DIR变量——脚本后续路径都引用它改一处即级联。第二处是已注册的服务旧工作目录在注册时已写死要用nssm set WinBoatGuestServer AppDirectory 新路径手动重指。第三处是排查环境里直接引用安装路径的规则与任务如时间同步任务一并修改脚本自带的两条 netsh 规则只引用端口不用动。企业部署可另建独立日志目录用nssm set WinBoatGuestServer AppStdout %LOG_DIR%\stdout.log把服务标准输出重定向到文件便于集中采集监控。这个脚本给出去的可迁移方法有三条把进程封装成服务、生命周期交给系统管理只开放需要的端口与账户权限所有操作用无人值守方式完成。其他跨平台项目写部署脚本时可以直接套用。【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考