Hyper V NAT 网络设置 固定IP / DHCP
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
- 下载服务版
- 在windows防火墙中,添加例外配置

- 配置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的更多相关文章
- vmware fusion nat网络模式设置固定ip
最近想在本地用虚拟环境搭一个k8s环境,但是发现虚拟机的ip会不定时自动变化,导致mosh客户端连接经常中断.于是就想让虚拟机的ip固定住,不再变动. mac 上的 vmware fusion 设置固 ...
- VMware workstation CentOs 7 虚拟机网卡设置为NAT模式并设置固定IP
一.背景知识 虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3 ...
- VMware workstation 14 CentOs 7.5.1804 虚拟机网卡设置为NAT模式并设置固定IP
一.背景知识 虚拟机网络模式 无论是vmware workstation,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3. ...
- linux-centos7.6设置固定IP网络方法
两种方法设置固定IP 本文分别用了虚拟机网络模式桥接模式和Net模式,至于两者直接的区别可查看其他文档. 一.安装时设置固定IP地址 1.在系统设置界面,点击“网络和主机名”选项,可以看到默认是未连接 ...
- docker 设置固定ip、配置网络
Docker安装后,默认会创建下面三种网络类型 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge ...
- 转 -- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
原文转自:http://www.cnblogs.com/lanxuezaipiao/p/3613497.html#undefined 虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是 ...
- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是NAT的上网方式默认是DHCP动态分配IP的,这意味着你每次重启虚拟机都 有不一样的IP地址,这对一般用户没任何问题.但是如果你的机子 ...
- 虚拟机中的CentOS 7设置固定IP连接最理想的配置
说明:在网上搜了好多文章都是大同小异,都没有完全解决我想要的固定IP后要达到的如下效果, 1.笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网: 2.只要笔记本 ...
- centOS7虚拟机设置固定IP
说明:想要达到的如下效果, 1.笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网: 2.只要笔记本主机可以正常访问外网,启动虚拟机中的CentOS 7系统就 ...
随机推荐
- JQuery学习笔记(1)——选择器
JQuery本质上还是JavaScript,是JavaScript的一个框架,可以让我们更简洁地去使用JavaScript 使用之前,记得在html头部引用JQuery 通过选择器获得JQuery对象 ...
- wpf source path
<Image Source="pack://application:,,,/Images/Folder-icon.png"/> <Image Source=&qu ...
- Visual Studio模板代码注释小技巧
在日常开发过程中,难免有这样一种需求:就是你所建的每一个类文件或者接口文件都需要标注下作者姓名以及类的用途.如果我们每次创建文件的时候都需要写一遍这些信息是很烦神的.还好Visual Studio给我 ...
- Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之三 || Swagger的使用 3.1
本文梯子 本文3.0版本文章 常见问题 1.Bug调试 2.经常有小伙伴遇到这个错误 3.路由重载 一.为什么使用Swagger 二.配置Swagger服务 1.引用Nuget包 2.配置服务 3.启 ...
- Python绘图还在用Matplotlib?out了 !发现一款手绘可视化神器!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. GitHub 地址:https://github.com/chenjian ...
- CSS @规则
最近在看极客时间winter大神的重学前端系列,遇到了许多不常用但是很重要的知识点.感觉视野得到了极大的开阔(打个广告,哈哈). 其中css @规则令人印象深刻.简单的做下笔记: @namespace ...
- 4.JavaCC处理中文字符
要使JavaCC能够处理中文首先需要将语法描述文件的options块的UNICODE_INPUT选项设置为true: options { STATIS = false; DEBUG_PARSER ...
- 接口是用get还是post,如何选择?
为了保证信息安全性,注册.登录等操作通常都会使用POST请求,GET请求一般用来获取信息 GET与POST的区别可以参考下方链接 https://www.cnblogs.com/hyddd/archi ...
- day67_10_11
一.路由跳转 在vue中,路由条状有很多种. 其中有点击事件触发的路由跳转: this.$router.push('/course'); 和通过名字跳转的: this.$router.push({na ...
- [C1W1] Neural Networks and Deep Learning - Introduction to Deep Learning
第一周:深度学习引言(Introduction to Deep Learning) 欢迎(Welcome) 深度学习改变了传统互联网业务,例如如网络搜索和广告.但是深度学习同时也使得许多新产品和企业以 ...