通过主机名为VMWare Fusion Linux来宾地址吗?


11

我在VMWare Fusion 3.0.0中设置了Ubuntu Server 9.04映像,使用NAT选项来宾网络连接。从Mac主机,我可以使用它的IP地址ssh到linux guest虚拟机,但是为了方便起见,我希望能够通过主机名来引用它。即:

mac-host:~ ssh user@linux-guest.local

几年前,我使用Parallels进行了类似的设置,但我不记得它是如何设置的。它可能已经“起作用”。

关于如何进行这项工作的任何建议?

Answers:


14

编辑我发布的第一版说明导致与VMware放置在vmnet8上的名称服务器和网关发生冲突。此版本解决了该问题。

软件版本:

  • MAC OS X版本10.6.3
  • VMware Fusion版本3.1.0(261058)
  • Ubuntu 10.04 LTS

我做了什么:

  • 在创建VM的过程中,将网络设置为NAT。

  • 在Linux Guest上:运行ifconfig以获取所使用的硬件地址HWaddr,广播地址Bcast,IPv4互联网地址inet addr和掩码Mask

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.129  Bcast:192.168.213.255  Mask:255.255.255.0
                     <snip>
    
  • 在Linux Guest上:查找名称服务器信息

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • 在Linux Guest上:查找网关地址:(在该行的“网关”列中列出,目标地址为0.0.0.0。)

    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    
  • 在OS X主机上:编辑NAT虚拟交换机的dhcpd.conf文件,vmnet8以将静态IP地址分配给Linux Guest。(在第四行使用您选择的编辑器)

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/vmnet8/
    OSXHost$sudo chmod u+w dhcpd.conf
    OSXHost$sudo cp dhcpd.conf dhcpd.conf.bak.20100619
    OSXHost$sudo emacs dhcpd.conf
    
  • 在OS X主机上:文件开始看起来像:

    # Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
    #
    # This file was automatically generated by the VMware configuration program.
    # See Instructions below if you want to modify it.
    #
    # We set domain-name-servers to make some DHCP clients happy
    # (dhclient as configured in SuSE, TurboLinux, etc.).
    # We also supply a domain name to make pump (Red Hat 6.x) happy.
    #
    
    
    ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
    # Modification Instructions: This section of the configuration file contains
    # information generated by the configuration program. Do not modify this
    # section.
    # You are free to modify everything else. Also, this section must start
    # on a new line
    # This file will get backed up with a different name in the same directory
    # if this section is edited and you try to configure DHCP again.
    
    # Written at: 12/26/2009 10:35:10
    allow unknown-clients;
    default-lease-time 1800;                # default is 30 minutes
    max-lease-time 7200;                    # default is 2 hours
    
    subnet 192.168.213.0 netmask 255.255.255.0 {
          range 192.168.213.128 192.168.213.254;
          option broadcast-address 192.168.213.255;
          option domain-name-servers 192.168.213.2;
          option domain-name localdomain;
          default-lease-time 1800;         # default is 30 minutes
          max-lease-time 7200;             # default is 2 hours
      option routers 192.168.213.2;
    }
    host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.213.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
    }
    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    

注意事项:

  • subnet部分应与Linux Guest上收集的IP信息匹配。在inet addr会中rangenetmask将匹配Maskoption broadcast-address将匹配Bcastoption domain-name-servers并且option domain-name将匹配收集与信息cat /etc/resolv.conf,并option routers会匹配Gateway来自route -n命令。

  • 我们想要分配一个静态IP地址,以便我们可以在OS X主机的hosts文件中添加一个条目。地址必须在subnet定义的范围内。不能分配的地址是range子网部分中的地址,广播地址,fixed-addressfor host vmnet8,DNS服务器和网关。而且我认为不允许使用等于子网的地址。在此示例中,子网为。192.168.213.0因此,可用地址的来源192.168.213.1 to 192.168.213.255更少192.168.213.128 to 192.168.213.245(范围)更少192.168.213.255(广播)更少192.168.213.1(主机vmnet8)192.168.213.2(网关和DNS服务器)。网络是地址192.168.213.3 to 192.168.213.127可用。


  • 在OS X主机上:host在“ 请勿修改”部分下面创建一个新条目 。该条目将为Linux来宾分配一个静态IP。hardware ethernet需要HWaddrifconfigLinux Guest上进行匹配。选择一个可用的静态地址fixed-addressoption broadcast-addressoption domain-name-serversoption domain-name并且option routers需要匹配在给定的选项subnet的部分dhcpd.conf。(这已经与Linux Guest上收集的信息相匹配。)在此示例中,主机条目为:

    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    host serpents-hold {
        hardware ethernet 00:0c:29:53:bf:e5;
        fixed-address 192.168.213.3;
        option broadcast-address 192.168.213.255;
        option domain-name-servers 192.168.213.2;
        option domain-name localdomain;
        option routers 192.168.213.2;
    }
    
  • 在OS X主机上保存dhcpd.conf并关闭编辑器。

  • 在OS X主机和所有来宾上:关闭所有VM和VMware。

  • 在OS X主机上:重新启动VMware服务:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • 在OS X主机:查找范围Activity Monitor,并确保两个进程每个命名vmnet-dhcpd正在运行。(一个用于vmnet8NAT网络,另一个用于仅主机的网络。)如果您没有看到两者,则可能是vmnet8/dhcpd.confOS X主机上的文件有问题。解决该问题,然后重新启动VMware服务。

  • 在OS X主机上:启动VMware和Linux Guest VM。

  • 在Linux Guest虚拟机上在guest虚拟机VM上检查设置是否符合预期:

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.3  Bcast:192.168.213.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe53:bfe5/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:103 errors:0 dropped:0 overruns:0 frame:0
              TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:10961 (10.9 KB)  TX bytes:9637 (9.6 KB)
    lo <snip>    
    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    UbuntuGuest$
    
  • 在Linux Guest上:检查外界是否可以访问:

    UbuntuGuest$ping google.com
    PING google.com (72.14.213.104) 56(84) bytes of data.
    64 bytes from pv-in-f104.1e100.net (72.14.213.104): icmp_seq=1 ttl=128 time=47.6 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=2 ttl=128 time=48.7 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=3 ttl=128 time=48.2 ms
    ^C
    --- google.com ping statistics ---
    4 packets transmitted, 3 received, 25% packet loss, time 3093ms
    rtt min/avg/max/mdev = 47.687/48.223/48.714/0.491 ms
    UbuntuGuest$
    
  • 在OS X主机上:将主机名的映射添加到hosts文件:

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    使用Linux Guest的主机名和上面分配的IP地址在hosts文件的末尾添加一行。

    192.168.213.2   serpents-hold
    
  • 在OS X主机上:保存文件并退出emacs。

  • 在OS X主机上:测试主机名是否可访问Linux Guest:

    OSXHost$ping serpents-hold
    PING serpents-hold (192.168.213.3): 56 data bytes
    64 bytes from 192.168.213.3: icmp_seq=0 ttl=64 time=0.169 ms
    64 bytes from 192.168.213.3: icmp_seq=1 ttl=64 time=0.244 ms
    ^C
    --- serpents-hold ping statistics ---
    2 packets transmitted, 2 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.169/0.207/0.244/0.037 ms
    OSXHost$
    

如果您使用的是OSX主机,那就太好了。希望我能在某个地方找到等效的窗户。
tj111 2010年

1
很棒的信息。谢谢。v4.x的2个更新1. dhcpd.conf的位置现在为:“ / Library / Preferences / VMware Fusion /”。2.在Fusion 4中,关闭Fusion后,网络服务无法运行。要重新启动网络服务,请重新启动Fusion。
sym3tri 2012年

8

原始问题的第一步答案是运行以​​下命令:

$ sudo apt-get install libnss-mdns

安装此软件包应立即启用该功能。然后,您可以通过进入虚拟机your-vm-hostname.local。这仅在VM的本地网络内有效,这取决于您在虚拟化软件中对其进行配置的方式。

苹果将​​此功能称为Bonjour,其他人称为Zeroconf。它内置在OS X和iOS中。在Windows上获取它的最简单方法是安装Windows版iTunes。


使用此方法,我需要在客户机的名称后附加“ .local”,例如ubuntu-guest.local,当我从主机端引用它时。除此之外,这很棒!
纳撒尼尔(Nathaniel Waisbrot)2013年

@NathanielWaisbrot是的。那就是原始海报想要的。
hashemi

3

您可以使用Avahi配置zeroconf,这应允许客户端无需DNS注册即可在网络上标识自己。


2

假设您只想通过命令行登录,为什么不创建ssh配置文件?我为我的虚拟机做这样的事情。

# ~/.ssh/config
Host linux-box    
Hostname localhost
Port 8822

那我可以

mac-box:~ ssh linux-box

1

如果您使用的是NAT,它可能会尝试向DNS服务器注册,但是向主机以外的计算机注册,其IP将与您的计算机相同,并且可能会导致一些问题。

我建议您切换到桥接网络,因为这将为其提供自己的IP地址,并将其分配给任何计算机,其外观将与网络上的任何其他计算机一样。如果正确设置了所有IP设置(或使用DHCP),它将自动注册并且通过IP或主机名在任何端口上进行任何操作都不会有问题。


1
是的,我认为这可行,但是我更希望有一个稳定的专用网络。虚拟机位于四处移动的笔记本电脑上,有时没有互联网连接。如果使用桥接模式,则主机脱机时将无法与其联系。
09年
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.