¿Cómo puedo obtener la dirección IP en puente de una VM VirtualBox que se ejecuta en modo sin cabeza?

26

Tengo VirtualBox configurado en un servidor. Se configuró como una VM en puente y tiene una dirección IP. Ahora se ejecuta en modo sin cabeza, comenzó con "VBoxHeadless -s PuppetMaster".

¿Cómo puedo averiguar qué IP está usando la VM VBoxManage?

Jon Haddad
fuente

Respuestas:

20

Podría encontrar mi Headless VB con la combinación de los siguientes comandos:

# 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

Pero aún más fácil: en Linux, puede conectarse a VB:

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

Este comando abrirá una ventana de shell y tendrá acceso directo a Headless VB, donde puede recuperar su IP de Headless VB: ip addr

Alberto
fuente
6

Instale adiciones de invitados y (suponiendo que Linux es el invitado) puede ejecutar lo siguiente:

VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig"  --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a
Simone Scarduzio
fuente
1
El formato ha cambiado un poco ahora, lo necesitaráVBoxManage --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
fuente
El comando funciona para una sola VM. - Con múltiples filtros de VM por nombre de VM, por ejemplo:VBoxManage list runningvms | grep vmname | awk ...
mschuett
O podemos preguntar sobre una máquina virtual específica. Por ejemploVBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "
Mohnish
3

No estoy seguro si VBoxManage puede darle esa información directamente. Lo que puede hacer es ejecutar el siguiente comando para ver la configuración de la tarjeta de red.

VBoxManage showvminfo PuppetMaster | egrep ^NIC

Eso, si nada más, le proporcionará la dirección MAC, lo que le permitirá averiguar la dirección IP real por otros medios.

andol
fuente
2
¿Alguna idea sobre cómo obtener la IP utilizando la dirección MAC de la línea de comando?
Jon Haddad
2

Puede obtenerlo directamente con este comando:

VBoxManage list bridgedifs
ShawnMilo
fuente
1

Del foro virtualbox.org -

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

Mohnish
fuente