Static 如何防止hyper-v虚拟交换机的ip地址被更改?

Static 如何防止hyper-v虚拟交换机的ip地址被更改?,static,switch-statement,ip,virtual,hyper-v,Static,Switch Statement,Ip,Virtual,Hyper V,我有一台安装了Windows 10 2004的笔记本电脑。我配置了Hyper-V并创建了两个虚拟机:在一个虚拟机上运行windows 10来封闭我必须用于工作联系人的服务器恶意软件IM软件。在另一个虚拟机上运行ubuntu服务器20.04进行开发 我使用内部网络类型的虚拟交换机配置了Hyper-V,并且Hyper-V自动使用静态IP指定了虚拟交换机。我想用机器名连接到ubuntu。因此,我使用静态IP指定了ubuntu VM,并在主机windows 10的主机文件中添加了一项。然后我可以使用VS

我有一台安装了Windows 10 2004的笔记本电脑。我配置了Hyper-V并创建了两个虚拟机:在一个虚拟机上运行windows 10来封闭我必须用于工作联系人的服务器恶意软件IM软件。在另一个虚拟机上运行ubuntu服务器20.04进行开发

我使用内部网络类型的虚拟交换机配置了Hyper-V,并且Hyper-V自动使用静态IP指定了虚拟交换机。我想用机器名连接到ubuntu。因此,我使用静态IP指定了ubuntu VM,并在主机windows 10的主机文件中添加了一项。然后我可以使用VS代码的remote over SSH功能在windows 10主机上开发node.js应用程序。在我重新启动笔记本电脑之前,一切都很顺利

重新启动笔记本电脑后,hyper-v虚拟交换机的IP地址已更改。我无法再重新连接到VM ubuntu,因为VM ubuntu配置了一个静态IP和基于虚拟交换机旧IP的默认网关

我通过UI检查了虚拟交换机的IPv4属性,它被配置为“使用以下IP”,所以我认为IP不应该改变。但我错了。每次我的笔记本电脑重启后,虚拟交换机的“静态IP”总是会发生变化。此更改会断开与VM ubuntu的连接

那么,有没有办法防止虚拟交换机的IP地址被更改?或者以某种方式将名称解析机制添加到Hyper-V虚拟交换机(然后我可以在虚拟机中使用动态IP地址进行配置)

  • 不要使用Hyper-V创建的默认开关。正如Miket25所说:“默认开关由HNS创建,可能有一些设置导致它在重新启动时具有DHCP地址。”
  • 每年使用NAT创建一个内部虚拟交换机。这是向导。然后将虚拟机连接到此交换机。重新启动时不会更改分配给此交换机的静态IP地址
  • 在Hyperv中设置Ubuntu中的静态IP地址 注意:虚拟机连接在Hyperv中的“外部开关”上

  • 检查虚拟机使用的DNS IP地址

  • gtan@master:~$systemd解析--状态 ... 链接2(eth0) 当前作用域:DNS LLMNR设置:是 多播DNS设置:否 DNSSEC设置:否 DNSSEC支持:否 DNS服务器:192.168.141.81 DNS域:mshome.net

  • 检查网关和子网掩码

  • gtan@master:/etc/netplan$netstat-r 内核IP路由表 目标网关Genmask标志MSS窗口irtt Iface 默认网关0.0.0.0 UG 0 0 eth0 10.44.0.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0 10.44.1.0 10.44.1.0 255.255.255.0 UG 0 0 0法兰绒。1 10.44.2.0 10.44.2.0 255.255.255.0 UG 0 0 0法兰绒。1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-894a4759cb12 172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 0 docker0 192.168.141.80 0.0.0.0 255.255.240 U 0 0 0 eth0 _网关0.0.0.0 255.255.255.255 UH 0 0 eth0

    eth0网关=192.168.141.81掩码255.255.255.240(192.168.141.80用于广播)

  • 检查eth0 IP地址和子网掩码

  • gtan@master:ifconfig ... eth0:flags=4163 mtu 1500 inet 192.168.141.85网络掩码255.255.255.240广播192.168.141.95 inet6 fe80::215:5dff:fe3a:1100预桥64作用域ID 0x20 乙醚00:15:5d:3a:11:00 txqueuelen 1000(以太网) 接收数据包82792字节103449317(103.4 MB) 接收错误0丢弃0超出0帧0 发送数据包40353字节10745111(10.7 MB) 发送错误0丢弃0溢出0载波0冲突0

  • 将“/etc/netplan/01 netcfg.yaml”编辑到此(首先备份原始01-netcfg.yaml:“sudo cp./01-netcfg.yaml./01 netcfg.yaml.bak”): 网络: 版本:2 渲染器:networkd 以太网络: eth0: dhcp4:没有 地址: - 192.168.141.85/28 网关4:192.168.141.81 名称服务器: 地址:[8.8.8.8]

  • 关闭虚拟机


  • 在Hyperv中,选择虚拟机:

    • 转到网络适配器-->高级功能-->将MAC地址设置为“静态”
  • 一切都好去

  • 工作结束后,使用“已保存”而不是“暂停”来显示虚拟机的


  • 我刚刚通过Hyper-V“虚拟交换机管理器”添加了一个额外的内部交换机,并将其命名为“静态交换机”。然后通过控制面板->网络和互联网->网络和共享中心->更改适配器设置来更改其设置。右键单击新适配器并选择属性->Internet协议版本4(TCP/IPv4),然后设置当前未在网络上使用的静态IP,例如IP地址:192.168.199.1子网掩码:255.255.255.0。不需要其他设置。单击“确定”并关闭所有父窗口

    通过VM的设置,添加硬件->网络适配器添加,将新尼克添加到Hyper-V计算机。选择“静态开关”并单击“确定”

    编辑您的客户端虚拟机网络设置,在我的例子中是Ubuntu 20.10,因此它是eth1的有线设置(新的“有线连接”)。我禁用了IPv6,并使用手动配置(静态IP)编辑了IPv4设置,将IP地址设置为192.168.199.2,网络掩码设置为255.255.255.0,网关设置为192.168.199.1(“静态交换机”)。不需要其他设置。单击应用并检查网络eth1是否已连接

    您应该能够从客户端VM ping 192.168.199.1,从主机ping 192.168.199.2

    重新启动后,此配置将保持不变,您可以在主机上使用您想要的任何名称编辑主机文件,例如192.168.199.2 my.vm.machine


    注意:您需要以管理员身份编辑主机文件。

    如何设置vswitch的静态IP地址?要明确的是,当你分配一个属性