WinApps旧电脑部署Windows应用:4GB内存2核起步的完整方案
发布时间:2026/9/13 18:43:10 锦皓数字建站

WinApps旧电脑部署Windows应用4GB内存2核起步的完整方案【免费下载链接】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在4GB内存、双核的旧Linux电脑上装Windows 11虚拟机经FreeRDP把Office接入Linux应用菜单照做即可直接打开Word。WinApps的工作链路分三步先在Docker、Podman或libvirt里跑一个Windows 11虚拟机三种后端都走KVM硬件虚拟化再扫描Windows注册表中的已装程序在Linux侧生成.desktop快捷方式最后用FreeRDP 3把Windows窗口渲染到Linux桌面上。它不支持内核级反作弊如Riot Vanguard且Windows家庭版没有RDP服务器角色必须使用专业版及以上版本。十分钟跑通Linux桌面启动WinApps安装命令路径整体分三步宿主机依赖 → Windows容器 → 安装向导后端以Docker为例。第一步安装FreeRDP等宿主机依赖WinApps本体是一组bash脚本宿主机需要dialog向导界面、netcat端口探测、libnotify通知和FreeRDP3.xRDP客户端。Debian/Ubuntu一条命令装齐并顺带装好Dockersudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd docker.io docker-compose-v2⚠️ Debian 12bookworm的freerdp3-x11位于backports仓库需先启用backports再安装Fedora/RHEL换成sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncatArch把包名替换为freerdp与openbsd-netcat即可。第二步用compose.yaml启动Windows 11容器克隆仓库后直接使用随仓库提供的compose.yaml。模板默认是RAM_SIZE: 4G、CPU_CORES: 4、DISK_SIZE: 64G低配机器建议把CPU_CORES改成2再启动git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps docker compose --file ./compose.yaml up首次启动会下载Windows 11镜像并自动执行安装耗时取决于网速。期间在浏览器打开http://127.0.0.1:8006VNC界面仅映射到本机用compose.yaml中USERNAME/PASSWORD的默认账号MyWindowsUser/MyWindowsPassword完成OOBE。看到桌面后即可CtrlC结束前台进程——磁盘挂在命名卷data里安装进度不丢下次使用执行docker compose --file ./compose.yaml start在后台拉起。日常不想每条命令都加sudo的话执行sudo usermod -aG docker $USER后newgrp docker刷新组权限。第三步winapps.conf与安装向导创建~/.config/winapps/winapps.confRDP账号必须与compose.yaml中的USERNAME/PASSWORD一致同时收紧权限防止密码被其他用户读取mkdir -p ~/.config/winapps cat ~/.config/winapps/winapps.conf EOF RDP_USERMyWindowsUser RDP_PASSMyWindowsPassword WAFLAVORdocker RDP_IP127.0.0.1 RDP_PORT3389 RDP_SCALE100 DEBUGtrue EOF chmod 600 ~/.config/winapps/winapps.conf然后在仓库根目录运行安装向导。它会逐项检查依赖、连通RDP、扫描Windows已装程序并把选中的应用注册到Linux应用菜单--user装在~/.local下bash setup.sh --user在对话框里勾选Word、Excel、PowerPoint、Outlook等应用。完成后从Linux应用菜单即可直接打开宿主机~/目录会自动挂载为Windows内的\\tsclient\home。如果希望不打开终端也能管理Windows虚拟机和已装应用可以加装官方的WinApps-Launcher系统托盘应用WinApps最低配置要求Docker与libvirt后端资源对比三种后端都依赖KVM硬件虚拟化同负载下虚拟化开销约2%-5%同源QEMUKVM差异在自动化程度与调优空间。先确认CPU带虚拟化扩展grep -E vmx|svm /proc/cpuinfo输出非空即可。对比项Docker/Podmandockur/windowslibvirtQEMUKVM安装流程一条compose up自动下载并装Windows手动导入ISOvirt-manager里改十余处XMLWindows内存RAM_SIZE推荐4G最低2Gmemory上限4096 MiB 气球驱动currentMemory给1024 MiBCPUCPU_CORES轻办公给2vcpu2核建议host-passthrough磁盘DISK_SIZE64G命名卷承载qcow2精简置备建议60-80G调优空间仅compose.yaml环境变量完整XMLCPU绑核、virtio设备、GPU直通暂停/恢复compose pause/unpausevirsh suspend/resume一句话结论轻办公、首次使用、4GB旧机器选Docker需要GPU直通、CPU绑核或已有现成Windows虚拟机则选libvirt。libvirt路线的资源配置写在虚拟机XML里低配机器按下面取值上限4G、当前1G靠virtio气球驱动把空闲内存还给宿主机currentMemory unitMiB1024/currentMemory memory unitMiB4096/memory vcpu placementstatic2/vcpuCPU页面勾选Copy host CPU configuration让客户机直接拿到宿主机的CPU特性集内存页面把Maximum allocation设为4096、Current allocation设为1024若个别应用如OneDrive导致气球驱动追不上、出现随机重启可关闭ballooningWindows 11安装到网络选择页时virtio网卡尚未加载驱动、无法联网会卡在这一屏按ShiftF10调出命令提示符输入OOBE\BYPASSNRO回车重启再选I dont have internet跳过。WinApps关键配置4GB内存旧电脑必改的四个参数全部配置里真正决定能不能跑和卡不卡的主要是下面四个参数作用推荐值改了会怎样RAM_SIZEcompose.yaml分配给Windows虚拟机的内存4G4G宿主机可降到3G需compose down、删除对应FreeRDP证书再up重建容器磁盘数据保留给太低时Windows靠页面文件硬撑资源管理器与Word都会掉进交换而卡顿CPU_COREScompose.yaml分配给虚拟机的CPU核数2双核宿主跑轻办公足够KVM开销约2%-5%降到1核会让Windows首次安装与应用启动明显变慢AUTOPAUSE/AUTOPAUSE_TIMEwinapps.confRDP断开N秒后自动暂停Windows虚拟机on/300off时虚拟机常驻4G内存一直被占时间单位为秒最小20RemoteApp会话有固定20秒延迟RDP_FLAGSwinapps.conf追加传给FreeRDP的参数默认/cert:tofu /sound /microphone home-drive加/network:lan可改善渲染但个别用户反馈异常去掉home-drive则失去\\tsclient\home共享另外RDP_USER/RDP_PASS必须是完整Windows账号Windows 11 OOBE里PIN/TPM那种快捷登录组合无法通过RDP认证请在OOBE阶段就创建完整账号否则向导会在RDP连接测试一步失败。WinApps常见问题与调优安装超时、内存吃紧和文件夹共享失效安装向导报NETWORK CONFIGURATION ERROR退出码13现象首次运行setup.sh在检查RDP端口环节失败退出码13或14。低配机器上Windows 11首次启动慢默认的5秒端口探测超时不够用。排查nc -zv 127.0.0.1 3389看端口最终是否连通docker compose --file ~/.config/winapps/compose.yaml logs确认容器内Windows的启动进度。解决把winapps.conf里PORT_TIMEOUT从5改为30、RDP_TIMEOUT从30改为60再重新运行bash setup.sh --user。4GB宿主机装4GB虚拟机导致桌面卡顿现象宿主机总共4G内存虚拟机占走4G后Linux桌面自身被挤压切换窗口时两边都掉帧。排查htop与free -h确认容器进程的内存占用与宿主机剩余可用量。解决两手一起——把compose.yaml的RAM_SIZE降为3G按上节流程重建容器再让Windows闲时自动挂起# 立即手动挂起释放大部分内存unpause 恢复 docker compose --file ~/.config/winapps/compose.yaml pause docker compose --file ~/.config/winapps/compose.yaml unpause配合winapps.conf里的AUTOPAUSEonWindows会在最后一次RDP断开5分钟后自动暂停不再空占内存。Windows里看不到共享的主目录现象\\tsclient\home不可访问宿主机与Windows之间文件夹共享失效。排查执行lsmod | grep ip_tables与lsmod | grep iptable_nat任一输出为空说明缺少内核模块。解决注册模块自动加载并重启一次lsmod | grep -E ip_tables|iptable_nat echo -e ip_tables\niptable_nat | sudo tee /etc/modules-load.d/iptables.conf⚠️ 重启不可省略否则共享目录依旧不通。WinApps适用边界与官方文档入口WinApps适合4GB内存/双核Linux主机上偶尔跑几个Windows应用的轻办公场景Word、Excel、Outlook单开流畅若要在双核主机上同时压Photoshop和浏览器卡顿会非常明显内核级反作弊则完全不在支持范围。逐步配置详见Docker指南docs/docker.md与libvirt指南docs/libvirt.md完整参数表、社区验证应用清单与手动运行方式见README.md。【免费下载链接】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),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。