基于Hyper-V+RDP对国产软件进行隔离
前言
因为**某些需要**,我认为将国产软件与一些科学的服务跑在同一个环境中是不大安全和明智的
所以我决定用Hyper-V虚拟机去隔离,同时也能保证我宿主机的简洁
为什么用Hyper-V
首先的话,为什么用Hyper-V而不是VMware或者VirtualBox
其实很简单,为了流畅性我们最好还是使用GPU-PV去给虚拟机分下显卡,那这个肯定几乎只有Hyper-V支持了
再加上如果需要完全进入沙箱环境,比如我的一些工作,我可以用Sunshine的方式去远程连接,甚至是可以打游戏的
而Sunshine的话是必须要GPU的
开始折腾
Hyper-V的启用
这个很简单,在Windows功能里启用Hyper-V,我之前装过WSL2所以已经启用了,这个不过多赘述
值得一提的是,在启用之后实际上你的宿主机也会由Hypervisor管理,相当于也变成了一个大号虚拟机
但这个对于性能影响其实很小
我必须要批评的是国内一些CS对战平台至今不支持Hyper-V,如果打开会导致你用不了这些平台,非常垃圾
虚拟机的配置
系统的话我选择是Windows11 IoT LTSC
一个是轻量,不会过多占用硬盘的空间
一个是长期支持,不会频繁Windows Update
ISO下载的话值得提醒的就是,不要去微软官网去下,那里得到的是试用版本,无法切换为正式版
然后的话不需要手动安装,我们这里用EASY-GPU-PV,会自动处理驱动等配置
在项目的CopyFilesToVM.ps1中除了按照README修改iso路径账号密码以外,我们还需要改一下Edition
Edition = 2因为我们提供的Windows11 IoT LTSC中,我们需要的版本在安装界面的第二个位置
至于他说的一定要和宿主机系统相同,我倒是没见到有啥问题
当然前提是宿主机也是11,如果是10的话我就不知道啥情况了
运行脚本大概五分钟系统就好了
系统的精简
首先的话还需要对系统做一些更改
激活
虽然网上说 LTSC IoT 不能用 Activation Script 但是我不知道为什么我可以()
所以实际激活也就一行命令
irm https://get.activated.win | iex然后选1 自己就激活了
关闭Windows Defender
这个肯定是要关的,首先的话需要先关掉主动防御,不然 Defender 会杀掉关 Defender 的程序
然后彻底删除用了这个项目
卸载Edge
我是 IoT 版本 所以这个并没有预装,可以用这个项目进行卸载
最好不要删除 WebView2 不然一些软件会用不了
限制对局域网的访问
我不希望虚拟机可以访问我的局域网中的任何IP,仅能访问互联网
有俩方案
- 在路由器用 ACL 限制
- 本机直接用 Netsh 或者防火墙
我选择方案二
首先的话是不能用 Defalt Switch 的,因为微软自己给这玩意配了转发和 DHCP
结果又不给配置的地方 差评
新建一个 Internal Switch,然后在虚拟机里选择这个Switch
完事给他创建 NAT
New-NetNat ` -Name "SandboxNAT" ` -InternalIPInterfaceAddressPrefix 192.168.137.0/24因为没有 DHCP 所以我们要在虚拟机里手动设置静态 IP
这个去设置手动改一下就行,虚拟机可以用 192.168.137.1以外任何一个/24的IP
最后用防火墙阻挡所有通向内网的IP请求
New-NetFirewallRule ` -DisplayName "Block VM LAN" ` -Direction Inbound ` -Action Block ` -RemoteAddress 192.168.137.0/24 ` -LocalAddress 10.0.0.0/16至此系统就配置完了
远程连接
我选择使用这个工具
我看到这玩意居然是用 VB 写的,老到家了
本来不想用,但是其实真的没得选
不管咋说,装了以后Add RemoteApp,选择你想要的程序
然后就可以在宿主机上直接运行虚拟机里的程序了
效果就和普通窗口一样,唯一缺点就是跑不到高刷,因为 Windows 的 RDP 似乎限制死了60FPS
就先这样吧()
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!