Win2016和WIN2019 hyper-v中虚拟机利用母机公网上网的设置方法,并隐射端口让外部访问内网的虚拟机

迅恒数据中心

第一步:我们安装Win2016和WIN2019自带的hyper-v虚拟化软件,默认安装就行了 不需要任何修改,需要重启服务器生效

第二步:安装好hyper-v后,我们打开hyper-v管理器,找到右侧的hyper-v设置,将虚拟硬盘虚拟机的路径都改到D盘或你服务器上比较大空闲分区中

第三步:设置虚拟交换机

这里说明下这3个交换机的意思
外部:就是指这个交换机创建后,在这个交换机下的虚拟机就直接和路由器连接,如果你的电脑是通过路由器局域网(家庭网络或公司网络)上网这样创建交换机后,虚拟机就可以直接分配内网IP(如192.168.1.x)直接连接外网;但是如果在IDC机房的服务器,这样创建虚拟机交换机后,需要给虚拟机分配独立的公网IP才能上网。IDC机房虚拟机有独立公网IP才是用这个形式来创建虚拟机交换机。
内部:创建的交换机是母机下的一个内网网络,虚拟机有一个内网IP,母机就相当于一个路由器的角色,虚拟机通过母机上网。一般服务器只有一个IP的时候是这样创建虚拟交换的,然后通过端口隐射方式将母机的公网IP的端口隐射到内网虚拟机上。
专用:就是服务器是独立网络环境,不连接任何网络,既不能和母机互通,更不能连接外网。

我们这里是为了演示虚拟机利用母机上网,虚拟机没有独立公网IP。

另外请注意服务器只有一个网卡连接网络的时候,外部内部交换机只能创建其中一个(只能二选一),否则会出问题,如果要换虚拟机交换机的类型,就要先删除前面创建的。在有2个网卡连接了网络的情况下,可以将一个网卡专给外部交换机用(不要选配置了公网IP的网卡),还可以再创建内部交换机。

 

第四步:设置NAT方式令虚拟机使用内网的IP也能上网


在执行命令ncpa.cpl打开网络连接管理器
找到配置了公网IP的物理网卡,右键点击选属性
在这个物理网卡属性的共享设置中,勾选“允许其他网络用户通过此计算机的intel连接来连接”,指定给虚拟网卡,然后点确定.
 

设置后我们再看看虚拟机网卡的属性,也可修改虚拟机的内网IP段

 

通过以上设置后开通的虚拟机就会有一个内网IP,192.168.137.2---192.168.137.255,或者直接给虚拟机设置个段的IP就可以直接让虚拟机上网了!

但是这样设置后只是让虚拟机能访问外部网络,不能让外部网络访问虚拟机,这我们就需要在母机中做端口隐射(端口转发)解决外部能访问处于内网的虚拟机

在做端口映射前要确保母机IP Helper”服务是启动的,默认情况下这个服务是开启状态。

 

第五步:端口隐射(端口转发)

 

A、增加一个端口映射

netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=公网IP connectaddress=内网IP connectport=内网IP端口

例如:
netsh interface portproxy add v4tov4 listenport=33891 listenaddress=59.36.100.201 connectaddress=192.100.201.8 connectport=3389

另外:还要在母机的防火墙中开放被隐射的端口,如上面的33891端口;在虚拟机中也要开放3389端口
也可以不指定listenaddress公网IP,如netsh interface portproxy add v4tov4 listenport=33891 connectaddress=192.100.201.8 connectport=3389
如果需要本机端口映射(端口转发)本机的其他端口,只用将connectaddress的内网IP设置为本机的IP地址(可以是公网IP也可以是内网IP,但不能写为127.0.0.1)
另外隐射的端口不能和现有使用的端口冲突,如上面的33891这个端口在母机上在隐射前不能是被使用中的,否则会存在冲突。

 

B、查询端口映射情况
netsh interface portproxy show v4tov4
说明:如果服务器内没做端口映射,就查询不出任何数据
查询某个IP所有的端口映射(可以是母机IP 也可以是虚拟机的内网IP):
netsh interface portproxy show v4tov4 find "192.100.201.8"

netsh interface portproxy show v4tov4 find "59.36.100.201"
说明上面的IP地址可以不加“”也可以查询
可以查询服务器的外网IP,也可以查询虚拟主机的内网IP。

C、删除端口映射方法
netsh interface portproxy delete v4tov4 listenaddress=公网IP listenport=外网端口

netsh interface portproxy delete v4tov4 listenaddress=虚拟机内网IP listenport=虚拟机内网端口
例如:
netsh interface portproxy delete v4tov4 listenaddress=59.36.100.201 listenport=33891

netsh interface portproxy delete v4tov4 listenaddress=192.100.201.8 listenport=3389

分类:IDC资讯 百度收录 必应收录