Kann ich mithilfe von VMware Fusion die IP einer virtuellen Maschine ermitteln, ohne das Betriebssystem aufzurufen, das auf der virtuellen Maschine ausgeführt wird? Ich suche nach einer Menüoption, einer Befehlszeile oder einer anderen Option, die ich mit der VMware Fusion-Software selbst für das virtuelle Image ausgeben kann.
Vielen Dank - Adron
Antworten:
Kurze Antwort: Nein
Lange Antwort: Nein, aber vielleicht
Eine IP-Adresse liegt ausschließlich in der Verantwortung eines Betriebssystems. Daher hat das virtuelle Framework, in dem sich das Betriebssystem befindet, keine Vorstellung vom TCP / IP-Stack, es sei denn, es gibt symbiotische Ergänzungen zum Framework, z. B. Hyper-V und die zusätzlichen Gast-Tools von VMware (dank todda.speot.is in den Kommentaren unten). . Es ist nicht viel anders als die Dateien auf einer VM durchsuchen zu wollen, ohne sie zuerst zu starten.
Technisch gesehen , wenn die VM auf DHCP angewiesen ist , Sie könnten Ihren DHCP - Server suchen (wahrscheinlich Router Ihrer LANs) für den letzten Mietvertrag , die an der MAC - Adresse des virtuellen NIC ausgehändigt wurden eine gute Vorstellung davon zu bekommen , was die IP würde wahrscheinlich die seine Das nächste Mal wird es gestartet. Dies setzt voraus, dass dieselbe IP-Adresse nicht zwischenzeitlich an ein anderes Gerät weitergegeben wurde, als Sie den Lease-Verlauf und den Zeitpunkt des Starts der VM betrachteten.
quelle
Es überrascht nicht, dass VMWare ein eingebautes Tool dafür bereitstellt
vmrun
. Es ist unter,/Applications/VMware Fusion.app/Contents/Library/vmrun
obwohl es sich in anderen Fusion-Releases ein wenig bewegt hat.quelle
vmrun
Befindet sich standardmäßig im PATH meines Macvmrun getGuestIPAddress "$(vmrun list | grep vmx)"
, schließen Sie also die Anführungszeichen ein!Hier ist ein Tipp für den Fall, dass es jemandem hilft. Installieren Sie
avahi-daemon
auf der VM. Auf diese Weise können Sie eine Verbindung über den Hostnamen herstellenvmname.local
. Dabeivmname
handelt es sich um den Namen Ihrer virtuellen Maschine. In meinem Fall lautet der Name der VMbaremetal
und auf dem Host kann ich Folgendes ausführen:Keine Notwendigkeit, die IP der VM zu kennen. :)
quelle
avahi-daemon
keine verfügbar sind? Windows zum Beispiel kommt in den Sinn ... :-)Dies ist möglich - zumindest in dem üblichen Fall, in dem ein NAT-Netzwerk für den Gast konfiguriert ist. Da VMWare das NAT-ing bereitstellt, sollte es uns mitteilen können, für welche Adressen es derzeit NAT-ing bereitstellt. So etwas
vmrun list
sollte diese Information ausgeben. Dass es kein Fehler ist ...Aber hier ist auf jeden Fall, wie man es herausfinden kann. Führen
ifconfig
Sie das Programm zunächst auf Ihrem Mac aus (möglicherweise wirdipconfig
dies auch unter Windows ausgeführt, ich habe es jedoch nicht getestet). Dies listet alle Netzwerkschnittstellen auf dem Computer auf - sowohl physische als auch virtuelle. Suche nach den vmnet-ones. Auf meinem Mac erzeugt dies:Die IP meines Gastes befindet sich also in einem dieser beiden privaten VM-Netzwerke: entweder 192.168.82.0/24 oder 192.168.123.0/24. Auf Ihrem Host gibt es möglicherweise nur einen, glücklichen Menschen oder mehr als zwei - wir müssen sie alle überprüfen. Hier ist ein sehr einfaches tcsh-Skript, das direkt über die Befehlszeile eingegeben wurde und das für mich funktioniert hat. Es wird versucht, jede Adresse in allen von vmnet verwalteten privaten Klasse-C-Netzwerken per Ping zu erreichen, und wird beendet, wenn ein Ping erfolgreich war. Die
-W 500
Option weist ping an, nur eine halbe Sekunde auf eine Antwort zu warten (könnte wahrscheinlich noch weniger Zeit in Anspruch nehmen), und-c 1
weist es an, genau ein Paket zu senden:Das obige kleine Skript lief einige Zeit und listete alle erfolglosen Versuche auf, die nicht existierenden Adressen zu erreichen:
Bis es endlich gelang und zu Ende ging:
Voilà, ich konnte in meinen Gast hineinschauen:
Jetzt hatte ich nur einen Gast am Laufen - die erste IP-Adresse, die auf einen Ping antwortete, war also die richtige. Wenn Sie mehrere Gäste gleichzeitig ausführen, müssen Sie möglicherweise denselben oder einen ähnlichen Ping-Befehl verwenden, um eine Liste aller dieser gültigen privaten IP-Adressen zu erstellen, und versuchen Sie es dann mit allen, bis Sie den richtigen Gast gefunden haben ...
(Und vielleicht ist .130 sowieso eine gute Vermutung für NAT-basierte Adressen. Aber ich kann nicht sicher sagen.)
quelle
nmap -sP 192.168.123.*
Wie Mikhail T. sagte: "Da VMWare das NAT-ing bereitstellt, sollte es uns mitteilen können, für welche Adressen es derzeit NAT-ing ist." In der Tat tut es:
In meiner VMware Fusion 6-Installation
vmnet-dhcpd
schreibt der Dämon seine Leases in die Dateien/var/db/vmware/vmnet-dhcpd-vmnetX.leases
, wobei "X" 1 und 8 ist. Empirisch :-) Ich habe festgestellt, dass es sich um vmnet8 handelt, nach dem ich suchen sollte. Hier ist ein Auszug aus der Mietvertragsdatei/var/db/vmware/vmnet-dhcpd-vmnet8.leases
:Das
client-hostname
ist der Name der VM und die Nummer nach dem Wortlease
ist ihre IP. Sie können diese Einträge analysieren oder sich einfach die neuesten ansehen. Stellen Sie sicher, dass der von Ihnen angezeigte Mietvertrag noch gültig ist.quelle
Meine Lösung dafür war:
Konfigurieren Sie nach der Installation der VMware-Tools die Freigabe, damit Sie von CentOS aus auf einen Ordner (einen beliebigen Ordner) zugreifen können. Ändern Sie anschließend / etc / sysconfig / network-scripts / ifup-post, um das aktuelle Datum und die aktuelle IP-Adresse an eine Datei in diesem freigegebenen Ordner anzuhängen.
Wie macht man das:
Ändern Sie Folgendes: / etc / sysconfig / network-scripts / ifup-post
füge dies vor der letzten Zeile von ifup-post ein ("exit 0"):
Damit wird Ihrem guest_ip.log bei jedem Start des Netzwerks das Datum und der Rückgabewert von ifconfig angehängt.
In meinem Fall habe ich mich entschieden, ein Präfix von 192 für meine IP-Adresse einzugeben, da ich weiß, dass es zwischen meinem Zuhause und meiner Arbeit immer 192 ist.
quelle
In der VM-Konsole ausführen
ipconfig
(wenn VM Windows ist) oderifconfig
(wenn VM Linux ist).IP von
eth0
ist die IP-Adresse, nach der Sie suchen.quelle
Ich hatte das gleiche Problem beim Ausführen von VMPlayer unter Ubuntu 15.04. Meine virtuelle Maschine war auf NAT eingestellt, und obwohl ich ihre IP-Adresse ermitteln konnte, indem ich mich bei der GUI anmeldete und ifconfig auf der VM ausführte, konnte ich weder Ping noch SSH ausführen.
Bei der Installation von VMPlayer wurde DHCP auf den Adaptern vmnet1 und vmnet8 nicht aktiviert. Lösung war, die Ubuntu-GUI zu verwenden, um die Netzwerkverbindungen mit "Edit Connections" zu bearbeiten. Suchen Sie unter Ethernet nach vmnet1 und klicken Sie auf die Schaltfläche Bearbeiten. Aktivieren Sie unter IPv4-Einstellungen DHCP, speichern Sie und starten Sie neu.
Wenn Sie nun ifconfig in der Befehlszeile ausführen, werden Sie feststellen, dass vmnet1 eine IP-Adresse hat. Das SSHing in die nat-ed VM vom Host aus funktioniert nun ebenfalls.
quelle
Aus den Hilfeseiten von vmrun (Version 1.14.4 build-3204469):
Beachten Sie jedoch, dass die VMware Tools-Suite auf dem Gastbetriebssystem installiert sein muss und dieser Schritt nicht ohne Protokollierung auf dem Gastbetriebssystem ausgeführt werden kann. Sie können die Tools in einem "Basis-Image" installieren und durch Klonen neue Images daraus erstellen. Anschließend können Sie den obigen Befehl verwenden, um die IP-Adresse der neu erstellten VMs abzurufen.
quelle
quelle