Windows 使用虚拟机隔离不同生产环境,怎样做能兼顾性能与优雅?

2023-06-10 22:01:28 +08:00
 jemz

考虑到使用的程序类型比较杂,一方面很难在主系统中让它们保持“秩序”,即方便统一管理;另一方面也很难保证它们对系统的操作不会引发隐性问题。因此想要将不同生产环境下的软件隔离开来。

例如,我想到的初步方案为,配置多个 Windows 虚拟机,在虚拟机 A 内只安装不得不装的国产软件(如 QQ 之类),在虚拟机 B 内只配置编程生产环境(如 VS Code, PyCharm 之类),在虚拟机 C 内只安装 LaTeX 编辑与编译相关软件,以此类推。考虑到性能,把游戏安装在主系统中。

但是这样操作,不仅每台虚拟机都装一个 Windows 系统,会造成存储上的浪费;而且不符合我对优雅的期待(不然还不如不隔离,出问题直接用配置好的脚本重装)。

大家有没有过这样的想法,是如何解决的?求教,谢谢!

5061 次点击
所在节点    Windows
40 条回复
yinmin
2023-06-11 02:50:04 +08:00
以前有一个软件 sandboxie 买过专业版用了好多年,比虚拟机轻很多。现在这个软件还在,只是换了维护者了。
dogfight
2023-06-11 03:31:09 +08:00
没人关心 op 需要看下心理医生吗?还是我来到精神病院了??哈哈
akira
2023-06-11 06:15:19 +08:00
存储 不值钱。。凡是通过加存储空间能解决的问题,这个方案一般都是最划算的方案了。。
felixcode
2023-06-11 08:22:38 +08:00
就用个电脑都这么折腾,有什么优雅的
deorth
2023-06-11 08:31:06 +08:00
链接克隆
jKpzPv20NjX56i44
2023-06-11 09:07:02 +08:00
linux 的话有 docker 可以用...Windows 可能会麻烦一点
ikas
2023-06-11 11:16:29 +08:00
windows 自带沙盒加上配置文件
每个配置指定不同的文件夹目录,配合 vhdx 挂载
https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file

<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxScripts</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
<MappedFolder>
<HostFolder>C:\CodingProjects</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder>
<ReadOnly>false</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Command>
</LogonCommand>
</Configuration>
documentzhangx66
2023-06-11 11:22:46 +08:00
Windows 、虚拟机、生产环境,这几样不沾边的东西,放在一起,能优雅就奇怪了。

正确的做法是:

1.开发、调试的 Windows 环境,专机专用,不要与虚拟化服务器、生产环境混在一起。

2.如果生产要用 Windows ,请使用 Windows Server 版本,同样也是专机专用。

3.虚拟化,对于企业级生产,用 VMware vSphere ( ESXi )+ 存储备份一体机方案。个人用 PVE ( Proxmox Virtual Environment ),追求开关机速度与灵活性。
1014982466
2023-06-11 11:42:55 +08:00
花里胡哨,追求干净国产软件用精简版 /去广告版就完事了。外国软件绝大部分都能便携化运行。
而且善意提醒:Windows 开 Hyper-v 或者一切基于它的( sandbox, WSL, WSA )都会导致主系统也被虚拟化然后性能尿崩
yijiangchengming
2023-06-11 12:48:51 +08:00
我目前使用了 WSL+Hyper-v 虚拟机+Sandbox-Plus+WSA 。WSL 用于配置 Linux 和 docker 开发环境,各个环境之间互相隔离。Sandbox-Plus 用于安装国产毒瘤,Hyper-V 虚拟机用于软件 Win 测试以及 Win 开发环境。WSA 用于国产毒瘤。所有数据均在 D 盘,主系统 C 盘挂了不影响数据。
MiketsuSmasher
2023-06-11 13:43:20 +08:00
可以换 Linux 做主系统,国产软件用 Wine🐶
Wine 在设计上就能满足楼主“隔离不同生产环境”的需求:使用 WINEPREFIX 环境变量决定 Wine 实例的位置,把国产软件放到一个 prefix 里面,把生产环境放到另一个 prefix 里面,日常使用靠 Shell 脚本设置环境变量来切换。
虽然每一个 prefix 也都要占用空间,但也就每个 700MB~1GB 左右,存储占用会小很多(当然具体占用取决于你往里面装什么东西)。
而且 Wine 不是虚拟机,是直接转换 Windows 程序的系统调用,只要不玩游戏,性能几乎没有损失。
当然问题也是有的,Wine 的兼容性,以及楼主可能觉得换个主系统、配置上述内容要比去看心理医生麻烦🐶
kenvix
2023-06-11 18:20:36 +08:00
@wangkun025 分情况讨论,有些程序不放到隔离环境真不行,比如深信服 aTrust 会把宿主的网络栈给炸了
自定义 WSB 文件的 Windows Sandbox 做这个正合适
chenjies
2023-06-11 20:37:34 +08:00
vmware 的 windows 虚拟机里面我用 cpu-z 测过单核和多核分数,和宿主机是一样的。日常用一个虚拟机装国产软件,除了硬件加速有问题外,日常使用没有感觉到问题。都上 vmware 虚拟机了,在路由设置下基于 mac 的 ip 段,在宿主机设置内网白名单。vmware 并不能隔绝内网扫描设备。
boshok
2023-06-13 00:09:04 +08:00
突然想起十几年前在网吧用过一个沙箱软件,可以把 QQ 、文档编辑器等常用软件带着走,生成的文件好像在云上,网吧机器重启不影响。
ssdold
2023-06-13 11:23:09 +08:00
@boshok 冰点还原
boshok
2023-06-13 15:12:00 +08:00
@ssdold #35 冰点是网吧、学校机房用的。我说的是自己用的一个云端存储的软件,界面类似 QQ ,里面包含自己常用的软件,软件配置或文档的状态都是在云端,老高级了。
czmbbbb
2023-06-13 17:17:29 +08:00
使用 sandboxie 吧。https://scoop.sh/#/apps?q=sandboxie
可以做到一个 app 开一个虚拟路径,也可以好几个 app 共享一组虚拟路径。
abc8678
2023-06-15 15:40:48 +08:00
最近在用银行笔试的客户端,不想装在主力系统上,于是装了双系统。平时备份了 VHDX ,直接添加到启动菜单,重启切换。没想到它检测磁盘环境是 vhdx ,也认为这是虚拟机
ju0594
2023-07-02 09:00:06 +08:00
@boshok 云端软件平台
guisheng
197 天前
还有后续吗 同样的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX