我安装了Hyper-V Server 2012 R2(因为它是免费的)。 我在这个服务器上有2个虚拟机,一个Ubuntu服务器(vLS)和一个Windows服务器(vWS)。
我只有一个主机的外部IP地址,所以虚拟机与主机(192.168.110.1)在一个内部的192.168.110.0/24子网上,(我在连接的Hyper-Vpipe理器中创build了虚拟交换机) 。
我想build立一个基本的NAT,在那里我想把外部端口80绑定到vWS上的端口80上,所以服务器就像一个networking服务器(我希望允许在不同端口上同时访问两个虚拟机)端口80只是一个例子)。
问题是Hyper-V Server不允许安装RRASangular色,也没有ICS可用。
其他一些问题指向使用New-NetNat但由于它不是Server 2016, InternalIPInterfaceAddressPrefix不可用。 这是运行无SLAT的Hyper-V服务器的最后一个版本,因此升级到2016年不是一个选项。
我曾尝试将其与ExternalIPInterfaceAddress和InternalRoutingDomainId参数一起使用,但我无法弄清楚有效的内部路由域ID是什么,以及我怎样才能找出(这似乎是某种GUID)。 我试了一堆零,但无济于事。
我看过NAT32,但似乎挂在服务器启动,GUI永远不会popup。 我会进一步尝试,但我希望在服务器上的本地function,而不安装任何第三方(这是说,如果我能得到它的工作,我会很乐意解决第三方解决scheme)。
有没有办法在Hyper-V Server 2012 R2中设置NAT,并将虚拟机的某些端口绑定到外部IP? 如果是,我该怎么办?
你需要两个vswitch和一个虚拟机为你做NAT。
Internal vswitch可以连接到虚拟机和主机,但不能连接到物理网卡。 这将是你的192.168.110.0/24networking。 将所有现有虚拟机都更改为此vswitch,并将防火墙VM的其中一个NIC更改为此虚拟机。 External vswitch可以连接到物理网卡。 防火墙的其他虚拟网卡应连接到此网卡。 您还应该取消选中“允许pipe理操作系统共享此networking适配器”框。 在您的主机上,两个vswitch应显示为控制面板中的networking适配器。 在与Internal vswitch匹配的适配器上configuration192.168.110.0/24 IP。 现在,主机可以与外部世界通信的唯一方法是通过防火墙虚拟机。
您可以在VM中安装另一台Windows服务器并设置一个RRAS,或者您可以安装和configurationVyOS虚拟路由器,并将所有tcp端口80stream量(出于参数目的)转发到您的Windows服务器,这些服务器将充当Web服务器。
对于VyOSconfiguration来说,这非常简单。 您需要下载VyOS虚拟路由器的.iso文件,并将其安装到虚拟机中。 将两个vNIC连接到该VM; 一个连接到连接到您的LAN适配器的外部vSwitch,另一个连接到您的VM连接到的内部或专用vSwitch。 所以你的VyOs路由器必须连接到两个networking。 您的外部互联网接入networking以及您的私人或内部虚拟机networking。
安装VyOS映像后,可以运行一些命令来configurationVyOS路由器的接口。
set interface eth eth0 address dhcp set interface eth eth1 address 192.168.110/24
以上命令设置外部接口通过DHCP获取其地址,并将路由器的下一个接口configuration为与您的虚拟服务器(VM)在同一networking上。
接下来,您将运行一些简单的命令将所有TCP 80通信转发到您select的内部服务器。
set nat destination rule 1 description 'Port Forwarding: HTTP to 192.168.110.254' set nat destination rule 1 destination port 80 set nat destination rule 1 inbound-interface 'eth0' set nat destination rule 1 protocol 'tcp' set nat destination rule 1 translation address '192.168.110.254'
在那里你有一个虚拟路由器转发所有的TCP 80数据包到地址192.168.110.254内部服务器(只是为了参数)。