Hyper V 默认的Default Switch同时支持了NAT网络以及DHCP,虚拟机能够访问外网。

但使用过程中发现这个IP网段经常变化,而且Hyper V没有提供管理其NAT网络与DHCP的图形化界面功能。

如果开发者需要同时管理多个VM,且在局域网中无法为他们单独分配固定IP时,使用可自行配置的NAT网络显得尤为重要。

本文提供一种自定义管理Hyper V NAT网络的方法,虚拟机能够通过固定IP连接至该网络,且能够访问外网。

如果你能够为虚拟机在外部网络中分配一个固定ip,应该优先考虑使用桥接模式,即创建“外部”虚拟交换机,跳过本教程。

目标

添加一个Switch能够支持 192.168.56.0 / 24 网段,并能够将 Linux(CentOS 7) 虚拟机通过固定IP连接到该网段。

支持物理机与虚拟机的相互访问,且支持虚拟机访问外网。

配置

以管理员身份启动PowerShell ,执行下列命令

# 创建虚拟交换机,等同于在Hyper-V管理器界面中新建虚拟网络交换机
New-VMSwitch -SwitchName "NAT-VM" -SwitchType Internal
# 查看 NAT-VM 的 ifindex
Get-NetAdapter
# 创建ip,InterfaceIndex参数自行调整为上一步获取到的ifindex。这一步等同于在 控制面版-网卡属性 中设置ip
New-NetIPAddress -IPAddress 192.168.56.1 -PrefixLength 24 -InterfaceIndex 6
# 创建nat网络,这一步是教程中的关键命令,24为子网掩码位数,即:255.255.255.0
New-NetNat -Name NAT-VM -InternalIPInterfaceAddressPrefix 192.168.56.0/24

在Hyper V管理器中设置该Linux虚拟机的网络适配器为 NAT-VM

设置Linux网络静态ip

#/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
TYPE="Ethernet"
DEFROUTE="yes"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.56.101"
PREFIX="24"
GATEWAY="192.168.56.1"
DNS1="223.5.5.5" #需使用外网DNS,通过网关IP无法获取DNS
DNS2="119.29.29.29"

CentOS还可通过管理工具nmtui来设置ip

重启linux网络

service network restart

错误处理

操作失误或需要修改nat网络时,可以删除之前的创建的nat网络。

进行下面前你应该确认仅有一个nat网络

Get-NetNat #确认获取到的nat只有一个且是你想要删除的
Get-NetNat | Remove-NetNat #删除nat网络

win10 1903 有时会出现NAT网络无法访问外网的情况,此时需要重启物理机才能恢复正常。猜测与电脑睡眠或网络环境变化有关。

DHCP

前面我们已经可以通过固定ip访问网络,但是你需要为每个虚拟机配置一个固定Ip,

比起其他vm工具,还是缺少了一个dhcp网络。

如果你需要自动分配,可通过配置第三方的dhcp服务软件实现,例如tftpd64 、 dhcpserver

tftpd64

http://www.tftpd64.com/

  1. 下载服务版
  2. 在windows防火墙中,添加例外配置

  3. 配置dhcp服务

dhcpserver

下载: http://www.dhcpserver.de/cms/

使用方法:https://blog.csdn.net/candy1232009/article/details/80785367

注意:发现dhcpserver会影响win10的移动热点功能

虚拟机硬盘转换工具 vmware <=> hyper-v

https://www.starwindsoftware.com/starwind-v2v-converter

参考:

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

https://anandthearchitect.com/2018/01/06/windows-10-how-to-setup-nat-network-for-hyper-v-guests/

https://github.com/docker/for-win/issues/1378#issuecomment-502380490

Hyper V NAT 网络设置 固定IP / DHCP的更多相关文章

  1. vmware fusion nat网络模式设置固定ip

    最近想在本地用虚拟环境搭一个k8s环境,但是发现虚拟机的ip会不定时自动变化,导致mosh客户端连接经常中断.于是就想让虚拟机的ip固定住,不再变动. mac 上的 vmware fusion 设置固 ...

  2. VMware workstation CentOs 7 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识      虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3 ...

  3. VMware workstation 14 CentOs 7.5.1804 虚拟机网卡设置为NAT模式并设置固定IP

    一.背景知识     虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3. ...

  4. linux-centos7.6设置固定IP网络方法

    两种方法设置固定IP 本文分别用了虚拟机网络模式桥接模式和Net模式,至于两者直接的区别可查看其他文档. 一.安装时设置固定IP地址 1.在系统设置界面,点击“网络和主机名”选项,可以看到默认是未连接 ...

  5. docker 设置固定ip、配置网络

    Docker安装后,默认会创建下面三种网络类型 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge ...

  6. 转 -- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)

    原文转自:http://www.cnblogs.com/lanxuezaipiao/p/3613497.html#undefined 虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是 ...

  7. Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)

    虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是NAT的上网方式默认是DHCP动态分配IP的,这意味着你每次重启虚拟机都 有不一样的IP地址,这对一般用户没任何问题.但是如果你的机子 ...

  8. 虚拟机中的CentOS 7设置固定IP连接最理想的配置

    说明:在网上搜了好多文章都是大同小异,都没有完全解决我想要的固定IP后要达到的如下效果, 1.笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网: 2.只要笔记本 ...

  9. centOS7虚拟机设置固定IP

      说明:想要达到的如下效果, 1.笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网: 2.只要笔记本主机可以正常访问外网,启动虚拟机中的CentOS 7系统就 ...

随机推荐

  1. wpf listview images

    <ListView x:Name="lv"> <ListView.ItemsPanel> <ItemsPanelTemplate> <St ...

  2. python基础(20):序列化、json模块、pickle模块

    1. 序列化 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 1.1 为什么要有序列化 为什么要把其他数据类型转换成字符串?因为能够在网络上传输的只能是bytes,而能够 ...

  3. CSS设置文本的水平对齐方向

    介绍 在CSS中text-align属性有3种值,如下:left左.center中.right右. 由于简单我就不再多的介绍了直接进入text-align属性实践了,如果大家是新手自己一定要去实践哈, ...

  4. RV32FDQ/RV64RDQ指令集(1)

    Risc-V架构定义了可选的单精度浮点指令(F扩展指令集)和双精度浮点指令(D扩展指令集),以及四精度浮点指令集(Q扩展指令集).Risc-V架构规定:处理器可以选择只实现F扩展指令子集而不支持D扩展 ...

  5. iOS中的GCD线程

    一.什么是GCD      全称是Grand Central Dispatch ,纯C语言编写,提供非常多强大的函数,是目前苹果官网推荐的多线程开发方法,NSOperation 便是基于GCD的封装 ...

  6. IOS系统在Safari安装ipa文件

    配置点击下载的地址 itms-services://?action=download-manifest&url= "plist文件路径"plist文件配置 IIS网站配置要 ...

  7. 删除带外键的表【foreign key constraint fails】报错

    title: 删除带外键的表[foreign key constraint fails]报错 date: 2018-08-02 21:59:06 tags: 数据库 --- 遥想当时正在学hibern ...

  8. [日常] 跨语言的POST请求问题的解决

    部门对外提供了一个HTTP的POST接口,但是对方公司的程序员使用C语言进行的调用,PHP这边一直无法获取到参数.遇到这种情况是因为对方没有完全按照HTTP协议中的POST发送数据.在HTTP头部分没 ...

  9. kafka相关操作

    kafka安装 下载 wget http://apache.gree.com/apache/kafka/1.0.2/kafka_2.11-1.0.2.tgz tar -zxvf kafka_2.11- ...

  10. SpringMVC其他说明(六)

    1. 编码问题 在web.xml中配置过滤器: <!-- 源码:spring-web.jar 功能:字符集过滤器,设置编码集为UTF-8,解决POST的中文乱码问题. 参数说明: encodin ...