配置Ubuntu vmware来宾NAT


9

我有一个Windows主机,该主机通过vmplayer运行来宾Ubuntu VM。该虚拟机将被克隆,分布在多个人(运行Windows主机)中,并用于举办编程研讨会。我正在尝试-到目前为止失败-设置网络以满足以下要求:

  1. 来宾必须可以访问互联网
  2. 所有克隆都应具有相同的主机名(比方说“ Workshop”是具体的)
  3. 主机系统必须能够通过该名称访问其各自的来宾(例如ping Workshop将对在该主机上而不是任何其他克隆上运行的来宾执行ping操作)

到目前为止,我已经尝试过:

  • 为访客“安装” NAT网络适配器
  • 尝试通过DHCP在/ etc / network / interfaces中连接来宾:

    auto eth0
    iface eth0 inet dhcp
       hostname Workshop
    

就连接到互联网而言,这是可行的。但是,我根本无法从主机连接到访客。(例如ping Workshop无法正常工作;如果我使用ifconfig返回的地址,则无论从主机上还是无效)。

  • 然后,我尝试为访客分配一个静态地址:

    auto eth0
    iface eth0 inet static
         address 172.241.0.101
         netmask 255.255.0.0
         gateway 172.241.0.100
    

(172.241.0.100是VMWare网络VMNet8适配器-上面的NAT适配器静态分配给主机的地址)。现在,我可以从主机ping 172.241.0.101和telnet。我也可以从客户机ping和telnet到172.241.0.100(主机),仅此而已-没有与更广泛网络的连接。(我也无法通过其主机名访问该来宾,但这在这里并不重要,因为如果要推送,我可以直接使用其地址-只要每个人的地址都相同-而不是名称)。

现在,我想我可以将桥接网络连接选项与DHCP一起使用,这将为我提供一台VM所需的功能(在这种情况下我没有尝试过,但我记得以前做过)。但是,如果多个虚拟机具有相同的主机名,并且它们的主机连接到同一网络,会不会有问题?

您的解决方案和其他建议将不胜感激。

Answers:


8

首先,是的,您将无法使用桥接网络连接,因为所有来宾均具有相同的主机名,因此必须使用NAT。

您拥有部分配置权限,但是,您的问题应该出在分配给该来宾的默认网关上。使用NAT时,默认网关不是主机的IP,而是连接到NAT网络的“虚拟交换机”的IP。(主机VMnet8适配器只是连接到网络的另一台设备,以允许主机与VM通信。)我们正在讨论的此虚拟交换机将.2IP 获取到子网中。因此,在您的情况下,/etc/network/interfaces应阅读:

auto eth0
iface eth0 inet static
     address 172.241.0.101
     netmask 255.255.0.0
     gateway 172.241.0.2

这应授予您的来宾VM访问(通过172.241.0.2)访问Internet ,并与您的主机通信(172.241.0.100)。因此,请尝试一下,让我知道它是否有效。

如果它不起作用(极不可能),那么您需要找出虚拟交换机的IP是什么。您可以做的是让VM通过DHCP获得IP(即,将其更改为iface eth0 inet dhcp以前拥有的IP ),然后执行route -n。这应该显示您正在使用的默认网关。在您的静态配置中使用该IP。


为了能够使用主机名Workshop对来宾VM进行ping操作,这是您可以执行的操作。您需要hosts在Windows 中的文件中添加一个条目,该文件位于中C:\Windows\System32\drivers\etc\hosts。编辑该文件以在末尾包含以下行:

但是,要在Windows下编辑该文件,您需要以管理员的身份在记事本或写字板中打开它...有时它甚至不允许您保存它,因此您需要在某处复制该文件,然后进行编辑删除.txt扩展名(如果有的话),然后返回并替换原来的扩展名,然后“确认”它……哦,我多么喜欢Linux。但是无论如何,这是您需要添加的行:

172.241.0.101    Workshop

完成此操作后,您应该能够ping Workshop从Windows主机成功进行操作。

当然,为了能够在车间中部署它,您将需要在每个Windows主机中编辑hosts文件,除非您还要克隆Windows机器。

提示:由于要为访客分配静态IP,因此请确保所有Windows主机上的VMplayer中的“ NAT网络”都使用该子网172.241.0.0/16,因为我认为VMware会为其虚拟网络随机分配一个子网( VMnet1、2等),因此VMnet8可能未在另一个Windows主机上使用相同的子网。如果不是这样,则需要使用VMware中的虚拟网络编辑器手动为VMnet8分配一个子网。


编辑

好的。发表评论后,您需要执行以下操作:

  1. 将您的(Windows)主机配置为在VMnet8适配器上“自动获取IP地址”。它应该获得IP 192.168.186.1
  2. 将(Ubuntu)来宾计算机配置为范围内的静态IP 192.168.186.3 - 192.168.186.127。让我们使用192.168.186.3。另外,将默认网关和dns服务器配置为192.168.186.2因此,您/etc/network/interfaces应该是:

    auto eth0
    iface eth0 inet static
         address 192.168.186.3
         netmask 255.255.255.0
         gateway 192.168.186.2
         dns-nameservers 192.168.186.2
    
  3. 通过ping 192.168.186.1192.168.186.2来宾计算机测试本地连接。您还应该能够从主机ping通到来宾。

  4. 通过ping google.com或浏览Internet 在来宾计算机中测试Internet连接。
  5. 将行添加192.168.186.3 WorkshophostsWindows主机中的文件中。
  6. ping Workshop从Windows主机进行测试。

如果要使用除之外的其他网络/池中的IP 192.168.186.0/24,则需要转到Edit > Virtual Network EditorVMware,找到VMnet8,然后在最底部将其DHCP设置更改为所需的任何网络,并相应地更改静态IP。 (默认网关将始终是第二个可用IP x.x.x.2)。

在此处输入图片说明


172.241.0.2不起作用。它也不响应ping(事实上,运行nmap -sP 172.241.0.0/24仅返回两个活动主机-.100和.101)。当使用dhcp配置时,路由-n将返回一个完全不同的地址:192.168.186.2
malenkiy_scot 2013年

哦,我认为您使用的是网络172.241.0.0/16,因为它是DHCP使用的网络。仔细想想,那实际上是一个公共IP [Oo]。您是否有理由在172.241.0.0网络中分配主机和访客IP?无论如何,请看我编辑过的答案。
Alaa Ali

不,这不是DHCP所使用的,而是配置VMNet8适配器的方式。通过VMWare DHCP服务获得DHCP地址。我不知道它从哪里获取地址池。我认为172.241地址不是公开的。当我在主机和来宾之间建立连接并运行CPORTS时,它表明10.63.41.41(即LAN上主机的地址)已通过不同的端口连接到自身-这是有道理的,因为这是NAT(或实际上是PAT) 。实际上,我对网关的想法与您的想法相同-网关的地址不同。
malenkiy_scot13年

是的,正如我的答案中提到的那样,DHCP服务及其池可从虚拟网络编辑器中配置(我已将屏幕截图添加到我的答案中)。网关,DHCP和DNS服务器都是相同的虚拟设备x.x.x.2。是的,就像您说的那样,它当然会在主机IP上使用重载(PAT)。您应该不会在更广泛的网络中看到访客的IP。另外,172.241.0.0/16 公共IP范围=)。172.16.0.0 - 172.31.255.255是B类地址中的私有范围。但这并不重要,它不应该影响任何东西。
Alaa Ali 2013年

另外,如果您想阅读有关VMware中NAT的更多信息,则可以访问页面,这是一本好书。
Alaa Ali

3

我遇到了类似的问题,使用在Windows 7上与Ubuntu guest虚拟机一起运行的VMWare Player。但是我可以从主机连接到来宾,并可以从来宾连接到主机,但是问题是我无法从来宾连接到互联网。阅读@Alaa答案后,我只需要再做一个调整即可将DNS服务器名称添加到interfaces文件(dns-nameservers 192.168.150.2)中,然后一切正常。

这是我的配置。

主机上的VMWare接口配置:

以太网适配器VMware网络适配器VMnet8 :(客户端)

Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Physical Address. . . . . . . . . : 00-50-56-C0-00-08
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9c13:cbf2:1dc:259f%42(Preferred) 

IPv4 Address. . . . . . . . . . . : 192.168.150.1(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . . . . : 
DHCPv6 IAID . . . . . . . . . . . : 704663638
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-19-06-50-32-88-53-2E-7A-D3-8E
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                    fec0:0:0:ffff::2%1
                                    fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled 

来宾Ubuntu的界面更改:

auto eth0
iface eth0 inet static
address 192.168.150.10
netmask 255.255.255.0
gateway 192.168.150.2
dns-nameservers 192.168.150.2

192.168.150.2是VMWare的代理,它将来宾流量转发到主机。


您好,我遇到了与您相同的问题。您能否解释一下如何解决问题。第一件事是从何处获取“以太网适配器VMware Network Adapter VMnet8 :(客户端)”的信息。您是说需要更新/ etc / network / interfaces中的更改吗?另外,对于“ netmask”,“ gateway”之类的地址,它们是否随不同的机器而变化?或者,我可以使用您发布的信息。
user288609
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.