Supponiamo di avere una stazione di lavoro VMware (guesting di Windows e ospitata da Windows). Esiste un modo per ricevere il nome host della macchina host? E senza modificare le cose sulla macchina host come in this link.Esiste la possibilità di ottenere il nome del computer HOST VMWARE dalla workstation GUEST senza modificare le cose su HOST?
risposta
In linea di principio - no.
Tuttavia, è possibile che esistano (o esisteranno) alcune vulnerabilità che consentono a un sistema operativo guest dannoso di ignorare la sandbox VM. Ad esempio, leggere su Blue Pill. Puoi anche leggere ulteriori dettagli sul blog del ricercatore, Invisible Things by Joanna Rutkowska.
Naturalmente, queste sono solo prove del concetto, ma qualsiasi sicurezza implementata nel software è soggetta a bug del software ...
Hai effettivamente due computer su una rete. Se si utilizza una configurazione di rete privata/NAT per le schede NIC virtuali, l'host ha un indirizzo IP abbastanza prevedibile, quindi è possibile utilizzare uno dei numerosi approcci di amministrazione remota per chiedere come qualsiasi altro .
Se esiste solo un sistema operativo guest, provare semplicemente ogni indirizzo IP con gli stessi 24 bit principali dell'indirizzo IP del guest salverà la cottura in un tentativo a un indirizzo.
Faccio questo passando una stringa dall'host al guest tramite machine.id. Richiede di apportare modifiche all'host (anche in ogni file .vmx di ogni VM) e non rileva automaticamente il nome host dell'host, ma funziona. Sull'host, con la VM in questione spenta, modifica il file .vmx per la VM. Trova o aggiungere una riga che assomiglia:
machine.id = "<string>"
Set <string>
pari a qualche stringa di identificazione che vi dirà il nome del server. Questo potrebbe essere il nome host, o potrebbe essere una versione abbreviata di esso, o anche qualche codice incomprensibile se preferisci, purché tu sappia cosa significa. Se, tuttavia, il file .vmx ha una riga che imposta
isolation.tools.machine.id.get.disable = TRUE
passando una stringa non funziona, quindi se questa linea è presente si potrebbe desiderare di rimuovere/commentarla o impostare il valore a FALSE
.
Sul sistema operativo guest, se si dispone di VMware Tools installato, è possibile fare questo (per gli ospiti): Linux
vmware-guestd --cmd 'machine.id.get'
o (per gli ospiti di Windows, che non ho provato):
VMwareService --cmd machine.id.get
Senza averlo provato a fondo: il comando "nuovo" sembra essere 'vmware-rpctool 'machine.id.get'' sotto Linux – Markus
Penso che probabilmente ci sono un certo numero di modi per farlo, e posso pensare a due fuori del blocco: uno sarebbe di installare ViX nel guest, collegarsi all'host senza specificare il nome host, (Google " Riferimento ViX ", quindi vedere" attività comuni "), quindi utilizzare Vix_CopyFileFromHostToGuest()
per copiare il file /etc/vmware/esx.conf
. Un altro sarebbe creare una sorta di connessione di rete dal guest all'host (ho usato ssh
ma se non conosci il nome host o l'indirizzo IP potresti ancora fare la connessione ViX come sopra e inviare un lavoro che richiede un po 'di tempo) e quindi dire netstat -a
nell'ospite. L'output netstat
conterrà il nome host, se è risolvibile.
Probabilmente è meglio fornire un collegamento piuttosto che assumere che le persone finiranno nello stesso posto che avevi in mente dopo aver fatto su Google. – khagler
Se si è in grado di installare PowerCLI sul sistema operativo guest, è possibile accedere ad alcune informazioni host ESX, cercando la VM che lo script è in esecuzione su:
Connect-VIServer -Server <myvcenterserver>
$myVM = Get-VM -Name $(dir env:COMPUTERNAME).Value
$myVM.Host.Name
Nota: Questo presuppone che il cliente ha lo stesso hostname del nome VM in vCenter.
Per gli ospiti Linux (l'OP ha dichiarato Windows) Io uso il modulo Python pyVmomi per eseguire una ricerca simile.
in vSphere
- Clicca vostro ospite
- fare clic sulla scheda di configurazione
- Nella sezione Software Clicca DNS e routing
Mi rendo conto che questo non è dal sistema operativo guest, ma se si sta tentando di ottenere tali informazioni da un host ospite VM, non si tratta di un amministratore. Dovresti avere accesso a vSphere tramite vCenter. – user2506891
So che questo è un vecchio filo, tuttavia, se qualcuno è ancora interessato, la risposta di "thomas lee" sopra sopra funziona versione recente di workstation VMWare e fusione VMWare. Il nuovo comando per recuperare il valore è
rpctool machine.id.get
Usando questo nella distribuzione di macchine virtuali gestite per fusione in modo che il nome della macchina è impostato automaticamente al primo avvio. Grazie Thomas .....
http://www.virtuallyghetto.com/2011/01/how-to-extract-host-information-from.html – JohnLBevan