虚拟机¶
虚拟机内连接主机7897代理¶
- 主机(Windows11):
- 首先通过
ipconfig
查看VMNet 8
虚拟网关地址,我的是192.168.67.1
- Clash-verge,代理在7897端口,注意需要打开
局域网连接(LAN)
,即让代理监听0.0.0.0:7897
而不仅仅是127.0.0.1:7897
。- 与此同时我还开了
Tun
模式,开了之后才能连上gemini
- 与此同时我还开了
- Windows 防火墙默认会阻止来自虚拟机的入站连接,因此需要在防火墙中添加一个规则,允许来自虚拟机的入站连接到7897端口。以管理员身份启动PowerShell:
- 首先通过
New-NetFirewallRule -DisplayName "Allow Clash on VMnet" -Direction Inbound -Protocol TCP -LocalPort 7897 -Action Allow
- 虚拟机:设置网络代理
# filepath: /etc/environment
http_proxy="http://192.168.67.1:7897"
https_proxy="http://192.168.67.1:7897"
all_proxy="socks5://192.168.67.1:7897"
HTTP_PROXY="http://192.168.67.1:7897"
HTTPS_PROXY="http://192.168.67.1:7897"
ALL_PROXY="socks5://192.168.67.1:7897"
no_proxy="localhost,127.0.0.1"
NO_PROXY="localhost,127.0.0.1"
然后运行测试:curl -v 192.168.67.1:7897
和curl -v https://www.google.com
,如果能正常返回内容,则说明设置成功。
Hyper-V on Windows¶
Hyper-V是Microsoft开发的硬件虚拟化产品,允许在单个物理计算机上创建和管理多个虚拟机环境。下面对这项技术进行详细介绍:
Hyper-V架构¶
Hyper-V采用Type-1虚拟化架构(裸金属虚拟化),这意味着:
- 虚拟化层直接运行在硬件上:Hyper-V虚拟化层(hypervisor)直接安装在硬件上
- 分区结构:Hyper-V创建"分区"来隔离不同的操作系统环境
- 父分区:拥有对硬件的直接访问权限,运行Windows操作系统
- 子分区:运行客户操作系统,通过虚拟化层访问硬件
开启Hyper-V后,整个电脑都变成虚拟机了吗?¶
部分正确但不完全准确。
实际情况:¶
- 父分区特殊性:
- 启用Hyper-V后,Windows确实在技术上变成运行在虚拟化层上的"父分区"
-
但父分区拥有特权,可以直接管理硬件资源
-
与传统虚拟机的区别:
- 父分区Windows不是普通意义上的"虚拟机"
- 它有特殊权限,并负责管理整个系统资源
-
通过虚拟化服务提供程序(VSP)协调硬件资源分配
-
性能影响:
- 虚拟化会产生少量开销,但父分区的性能影响相对较小
- 现代CPU的硬件虚拟化支持(如Intel VT-x/AMD-V)大大减少了这种开销
Hyper-V工作原理¶
- 微型化架构:
- Hyper-V hypervisor非常小且高效
-
负责核心任务:内存管理、处理器调度、分区隔离
-
设备访问机制:
- 父分区包含设备驱动程序,通过虚拟化服务提供商(VSP)提供硬件访问
-
子分区通过虚拟化服务客户端(VSC)访问硬件
-
内存管理:
- 使用第二级地址转换(SLAT)技术优化内存访问
- 支持动态内存分配
Hyper-V的影响¶
- 系统层面变化:
- 启用Hyper-V确实改变了操作系统与硬件的交互方式
-
Windows启动过程变更,加载hypervisor并将自身放入父分区
-
兼容性影响:
- 某些需要直接硬件访问的应用可能受影响
-
与其他虚拟化技术(如VMware Workstation)的兼容性问题
-
性能考量:
- CPU性能:现代处理器优化降低了虚拟化开销
- 内存分配:需要额外内存用于虚拟化基础设施
- 图形性能:可能对某些图形密集型应用有轻微影响
总结¶
Hyper-V确实将Windows转变为运行在虚拟化层上的环境,但作为"父分区",Windows保持对硬件的特权访问和控制能力。这与普通虚拟机有本质区别,因此说"Windows变成了虚拟机"只是部分正确的简化说法。对于大多数用户,启用Hyper-V后性能影响通常很小,特别是在现代硬件上。