如何获得以无头模式运行的VirtualBox VM的桥接IP地址?


26

我在服务器上设置了VirtualBox。它被设置为桥接虚拟机,并具有IP地址。它现在以“ VBoxHeadless -s PuppetMaster”开头的无头模式运行。

我如何找出VM使用VBoxManage的IP?

Answers:


20

我可以通过以下命令的组合找到无头VB:

# 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

但是更简单:在Linux中,您可以连接到VB:

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

此命令将打开一个外壳程序窗口,您将直接访问Headless VB,您可以在其中检索您的Headless VB IP:ip addr


6

安装来宾添加项,并且(假设linux是来宾),可以运行以下命令:

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

1
现在格式已更改,您需要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}'

命令适用于单个VM。-使用VM名称过滤多个VM,例如:VBoxManage list runningvms | grep vmname | awk ...
mschuett

或者,我们可以查询特定的VM。例如VBoxManage guestproperty get <vm-name> "/VirtualBox/GuestInfo/Net/0/V4/IP" | cut -f2 -d " "
Mohnish

3

不知道VBoxManage是否可以直接为您提供该信息。您可以执行以下命令来查看网卡配置。

VBoxManage showvminfo PuppetMaster | egrep ^NIC

如果没有其他方法,它将为您提供MAC地址,从而使您可以通过其他方式找到实际的IP地址。


2
关于如何从命令行使用MAC地址获取IP的任何想法?
乔恩·哈达德


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.