在Windows 11系统中使用Hyper-V创建虚拟机运行服务是开发和测试环境中的常见做法。但是有时候可能会遇到网络解析问题,尤其是当宿主机尝试通过虚拟机的机器名加端口访问服务时,默认情况下机器名可能会解析为IPv6地址。由于某些应用程序或服务无法处理IPv6地址,因此需要采取措施以确保系统优先使用IPv4地址。
有很多场景会遇到这个问题,例如我在windows的虚拟机里跑个代理服务,然后想在宿主机的浏览器里通过pac脚本访问这个代理服务,这时候使用虚拟机机器名+端口如果可以直接访问到虚拟机的服务,那是最好的了。
下面介绍下,如果通过一些配置,让我们在宿主机可以获得hyper-v虚拟机ipv4地址
临时需要获取IPv4地址时,可以使用Ping命令的-4参数来强制解析为IPv4地址:
ping -4 <虚拟机的机器名>
这种方法可以快速获取虚拟机的IPv4地址,但由于Hyper-V重启后会重新分配虚拟机IP地址,因此这不是一个长期的解决方案。
如果想长期解决此问题,可以通过修改注册表来调整网络协议的优先顺序。以下是具体步骤:
regedit
,然后按Enter键。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Parameters
,选择新建 > DWORD (32位)值
,并命名为DisabledComponents
。DisabledComponents
的值:双击DisabledComponents
,将其值设置为0x20
(十六进制),这会让系统优先使用IPv4而不是IPv6。
这样在宿主机直接使用固定的IP地址也可以访问。即使重启也没影响。这种方式比起方法二比较麻烦,但是好处是可以隔离宿主和虚拟机的网络,具体看个人的需求
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。