我在服务器上设置了 VirtualBox。它被设置为桥接虚拟机,并有一个 IP 地址。它现在以无头模式运行,以“VBoxHeadless -s PuppetMaster”启动。
我如何才能找出虚拟机正在使用 VBoxManage 的 IP?
答案1
我可以使用以下命令组合找到我的 Headless 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
此命令将打开一个 shell 窗口,您将可以直接访问 Headless VB,您可以在其中检索 Headless VB IP:ip addr
答案2
安装客户附加组件并(假设 Linux 是客户机)您可以运行以下命令:
VBoxManage --nologo guestcontrol yourVirtualMachineName execute --image "/sbin/ifconfig" --username yourUser --password yourPassword --wait-exit --wait-stdout -- -a
答案3
VBoxManage guestproperty enumerate {`VBoxManage list runningvms | awk -F"{" '{print $2}'` | grep IP | awk -F"," '{print $2}' | awk '{print $2}'
答案4
你可以直接用这个命令来获取它:
VBoxManage list bridgedifs