Adresse des VMWare Fusion Linux-Gastes nach Hostname?


11

Ich habe ein Ubuntu Server 9.04-Image in VMWare Fusion 3.0.0 eingerichtet, das die NAT-Option für die Netzwerkverbindung des Gastes verwendet. Vom Mac-Host aus kann ich mit seiner IP-Adresse problemlos zum Linux-Gast ssh, aber ich möchte der Einfachheit halber auf ihn mit dem Hostnamen verweisen können. dh:

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

Ich hatte vor ein paar Jahren ein ähnliches Setup mit Parallels, aber ich kann mich nicht erinnern, wie es eingerichtet wurde. Es könnte "gerade funktioniert" haben.

Irgendwelche Vorschläge, wie das funktioniert?

Antworten:


14

BEARBEITEN Die erste Version der Anweisungen, die ich veröffentlicht habe, verursachte Konflikte mit dem Nameserver und dem Gateway, die VMware auf vmnet8 installiert hat. Diese Version behebt das Problem.

Softwareversionen:

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

Was habe ich getan:

  • Setzen Sie während der Erstellung der VM das Netzwerk auf NAT.

  • Unter Linux-Gast: Führen Sie ifconfig aus, um die verwendete Hardwareadresse HWaddr, Broadcast-Adresse Bcast, IPv4-Internetadresse inet addrund Maske Maskabzurufen.

    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>
    
  • Unter Linux Guest: Suchen Sie die Nameserver-Informationen

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • Unter Linux Gast: Suchen Sie die Gateway-Adresse: (In der Gateway-Spalte der Zeile mit 0.0.0.0 als Ziel aufgeführt.)

    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
    
  • Unter OS X Host: Bearbeiten Sie die dhcpd.confDatei für vmnet8(Der virtuelle NAT-Switch), um dem Linux-Gast eine statische IP-Adresse zuzuweisen. (Verwenden Sie den Editor Ihrer Wahl in der vierten Zeile.)

    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
    
  • Unter OS X Host: Die Datei sieht zunächst folgendermaßen aus:

    # 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" #######
    

Dinge zu beachten:

  • Der subnetAbschnitt sollte mit den auf dem Linux-Gast gesammelten IP-Informationen übereinstimmen. Das inet addrwird innerhalb sein range, netmaskwird übereinstimmen Mask, option broadcast-addresswird übereinstimmen Bcast, option domain-name-serversund option domain-namewerden die Informationen mit gerafften übereinstimmen cat /etc/resolv.confund option routerspasst auf Gatewayvon dem route -nBefehl.

  • Wir möchten eine statische IP-Adresse zuweisen, damit wir der hostsDatei des OS X-Hosts einen Eintrag hinzufügen können . Die Adresse muss innerhalb der subnetdefinierten liegen. Adressen, die nicht zugewiesen werden können, befinden sich rangeim Subnetzabschnitt, in der Broadcast-Adresse, im fixed-addressfor host vmnet8, im DNS-Server und im Gateway. Und ich denke, die Adresse gleich Subnetz ist nicht erlaubt. In diesem Beispiel ist das Subnetz. 192.168.213.0Die verfügbaren Adressaten sind also 192.168.213.1 to 192.168.213.255weniger 192.168.213.128 to 192.168.213.245(Reichweite) weniger 192.168.213.255(Broadcast) weniger 192.168.213.1(Host vmnet8) weniger 192.168.213.2(Gateway und DNS-Server). Das Netz ist, dass Adressen 192.168.213.3 to 192.168.213.127verfügbar sind.


  • ON OS X Host: Erstellen Sie einen neuen hostEintrag unter dem Abschnitt NICHT ÄNDERN . Dieser Eintrag weist dem Linux-Gast eine statische IP zu. hardware ethernetBedürfnisse anzupassen HWaddraus ifconfigauf dem Linux - Gast. Wählen Sie eine verfügbare statische Adresse für fixed-address. option broadcast-address, option domain-name-servers, option domain-nameUnd option routersNotwendigkeit , die Optionen in der angegebenen übereinstimmen subnetAbschnitt dhcpd.conf. (Was wir bereits mit den auf dem Linux-Gast gesammelten Informationen verglichen haben.) In diesem Beispiel lautet der Hosteintrag:

    ####### 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;
    }
    
  • Unter OS X Host Speichern dhcpd.confund schließen Sie Ihren Editor.

  • Unter OS X Host und allen Gästen: Fahren Sie alle VMs und VMware herunter.

  • Unter OS X Host: Starten Sie die VMware-Dienste neu:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • Unter OS X Host: Überprüfen Sie Activity Monitor, ob jeweils zwei Prozesse ausgeführt vmnet-dhcpdwerden. (Einer ist für das vmnet8NAT-Netzwerk, der andere nur für das Host-Netzwerk.) Wenn Sie nicht beide sehen, liegt wahrscheinlich ein Problem mit der vmnet8/dhcpd.confDatei auf dem OS X-Host vor. Beheben Sie das und wiederholen Sie den Neustart der VMware-Dienste.

  • Unter OS X Host: Starten Sie VMware und die Linux Guest VM.

  • Unter Linux-Gast Überprüfen Sie auf der Gast-VM, ob die Einstellungen wie erwartet sind:

    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$
    
  • Unter Linux Gast: Überprüfen Sie, ob die Außenwelt erreichbar ist:

    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$
    
  • Unter OS X Host: Fügen Sie der hostsDatei eine Zuordnung für den Hostnamen hinzu :

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    Fügen Sie am Ende der Hosts-Datei eine Zeile hinzu, indem Sie den Hostnamen des Linux-Gasts und die oben zugewiesene IP-Adresse verwenden.

    192.168.213.2   serpents-hold
    
  • Unter OS X Host: Datei speichern und Emacs beenden.

  • Unter OS X Host: Testen Sie, ob der Linux-Gast über den Hostnamen erreichbar ist:

    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$
    

Das ist großartig ... wenn Sie auf einem OSX-Host sind. Ich wünschte, ich könnte die Fenster irgendwo gleichwertig finden.
TJ L

1
Tolle Infos. Vielen Dank. 2 Updates für v4.x 1. Der Speicherort von dhcpd.conf lautet jetzt: "/ Library / Preferences / VMware Fusion /" 2. In Fusion 4 wird der Netzwerkdienst nicht ausgeführt, wenn Fusion heruntergefahren wird. Starten Sie Fusion neu, um den Netzwerkdienst neu zu starten.
Sym3tri

8

Die einstufige Antwort auf die ursprüngliche Frage besteht darin, diesen Befehl auszuführen:

$ sudo apt-get installiere libnss-mdns

Durch die Installation dieses Pakets sollte die Funktion sofort aktiviert werden. Sie können dann unter auf Ihre VM zugreifen your-vm-hostname.local. Dies funktioniert nur im lokalen Netzwerk der VM. Dies hängt davon ab, wie Sie es in Ihrer Virtualisierungssoftware konfiguriert haben.

Diese Funktion wird von Apple Bonjour und von allen anderen Zeroconf genannt. Es ist in OS X und iOS integriert. Der einfachste Weg, um es unter Windows zu bekommen, ist die Installation von iTunes für Windows.


Auf diese Weise muss ich '.local' an den Namen des Gastcomputers anhängen, z. B. ubuntu-guest.localwenn ich von der Host-Seite darauf verweise. Davon abgesehen funktioniert das wunderbar!
Nathaniel Waisbrot

@ NathanielWaisbrot Das stimmt. Das wollte das Originalplakat.
Haschi

3

Sie können zeroconf mit Avahi konfigurieren, damit sich der Client in einem Netzwerk ohne DNS-Registrierung identifizieren kann.


2

Angenommen, Sie möchten sich nur über eine Befehlszeile anmelden, warum nicht eine SSH-Konfigurationsdatei erstellen? Ich mache so etwas für meine VM.

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

dann kann ich

mac-box:~ ssh linux-box

1

Wenn Sie NAT verwenden, wird möglicherweise versucht, sich bei DNS-Servern zu registrieren. Bei anderen Computern als dem Host entspricht die IP-Adresse jedoch der Ihrer Computer und kann einige Probleme verursachen.

Ich würde empfehlen, dass Sie zu Bridged Networking wechseln, da dies eine eigene IP-Adresse erhält und auf jedem Computer wie auf jedem anderen Computer im Netzwerk aussieht und sich anfühlt. Wenn Sie alle IP-Einstellungen korrekt eingerichtet haben (oder DHCP verwenden), sollte es sich automatisch registrieren und Sie sollten kein Problem damit haben, irgendetwas an einem Port über IP oder Hostname zu tun.


1
Ja, ich denke, das würde funktionieren, aber ich würde ein stabiles privates Netzwerk bevorzugen. Die VM befindet sich auf einem Laptop, der sich bewegt und manchmal keine Internetverbindung hat. Wenn ich den Bridged-Modus verwenden würde, könnte ich ihn nicht kontaktieren, wenn der Host offline wäre.
ungefähr
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.