Comment puis-je obtenir l'adresse IP pontée d'une machine virtuelle VirtualBox s'exécutant en mode sans tête?

26

J'ai VirtualBox installé sur un serveur. Il a été configuré en tant que machine virtuelle pontée et possède une adresse IP. Il fonctionne maintenant en mode sans tête, a commencé avec "VBoxHeadless -s PuppetMaster".

Comment puis-je savoir quelle IP la VM utilise VBoxManage?

Jon Haddad
la source

Réponses:

20

J'ai pu trouver mon Headless VB avec la combinaison des commandes suivantes:

# Update arp table
for i in {1..254}; do ping -c 1 192.168.178.$i & done

# Find vm name
VBoxManage list runningvms

# Find MAC: subsitute vmname with your vm's name
VBoxManage showvminfo vmname

# Find IP: substitute vname-mac-addr with your vm's mac address in ':' notation
arp -a | grep vmname-mac-addr

Mais encore plus simple: sous linux, vous pouvez vous connecter au VB:

# Default VirtualBox Listening Port: 3389
rdesktop -N hostingserver:3389

Cette commande ouvrira une fenêtre shell, et vous aurez un accès direct au Headless VB, où vous pourrez récupérer votre Headless VB IP: ip addr

Alberto
la source
6

Installez les ajouts d'invités et (en supposant que Linux est l'invité), vous pouvez exécuter ce qui suit:

VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig"  --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a
Simone Scarduzio
la source
1
Le format a changé un peu maintenant, vous aurez besoin deVBoxManage --nologo guestcontrol yourVirtualMachineName --username yourUser --password yourPassword run -- /sbin/ifconfig -a
mike.dld
4
VBoxManage guestproperty enumerate {`VBoxManage list runningvms | awk -F"{" '{print $2}'` | grep IP | awk -F"," '{print $2}' | awk '{print $2}'
brendan
la source
La commande fonctionne pour une seule machine virtuelle. - Avec plusieurs VMs filtrées par nom de VM, par exemple:VBoxManage list runningvms | grep vmname | awk ...
mschuett
Ou nous pouvons nous renseigner sur une machine virtuelle spécifique. par exempleVBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "
Mohnish
3

Je ne sais pas si VBoxManage peut vous fournir directement ces informations. Vous pouvez exécuter la commande suivante pour voir la configuration de la carte réseau.

VBoxManage showvminfo PuppetMaster | egrep ^NIC

Ce sera le cas si rien d'autre ne vous fournira l'adresse MAC, vous permettant de découvrir l'adresse IP réelle par d'autres moyens.

andol
la source
2
Des idées sur la façon d'obtenir l'IP en utilisant l'adresse MAC à partir de la ligne de commande?
Jon Haddad
2

Vous pouvez l'obtenir directement en utilisant cette commande:

VBoxManage list bridgedifs
ShawnMilo
la source
1

Du forum virtualbox.org -

VBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "

Mohnish
la source