Como posso obter o endereço IP em ponte de uma VM do VirtualBox em execução no modo sem cabeça?


26

Eu tenho o VirtualBox configurado em um servidor. Foi configurado como uma VM em ponte e tem um endereço IP. Agora está sendo executado no modo sem cabeça, iniciado com "VBoxHeadless -s PuppetMaster".

Como posso descobrir qual IP a VM está usando o VBoxManage?

Respostas:


20

Eu poderia encontrar meu VB sem cabeça com a combinação dos seguintes 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

Mas ainda mais fácil: no linux, você pode se conectar ao VB:

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

Este comando abrirá uma janela de shell e você terá acesso direto ao VB Headless, onde poderá recuperar seu IP do VB Headless: endereço IP


6

Instale as adições de convidados e (assumindo que o Linux seja o convidado), você pode executar o seguinte:

VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig"  --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a

1
Formato mudou um pouco agora, você vai precisarVBoxManage --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}'

O comando funciona para uma única VM. - Com várias VMs filtrar pelo nome da VM, por exemplo:VBoxManage list runningvms | grep vmname | awk ...
mschuett 4/13

Ou podemos perguntar sobre uma VM específica. por exemploVBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "
Mohnish

3

Não tenho certeza se o VBoxManage pode fornecer essas informações diretamente. O que você pode fazer é executar o seguinte comando para ver a configuração da placa de rede.

VBoxManage showvminfo PuppetMaster | egrep ^NIC

Isso, se nada mais lhe fornecer o endereço MAC, permite descobrir o endereço IP real por outros meios.


2
Alguma idéia de como obter o IP usando o endereço MAC na linha de comando?
9118 Jon

2

Você pode obtê-lo diretamente usando este comando:

VBoxManage list bridgedifs

1

Do fórum virtualbox.org -

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.