我使用以下命令在后台从 Virtual Box 运行我的 Ubuntu 实例:
VBoxManage startvm ${VM_NAME} --type headless
这与通过 GUI 运行它之间的主要区别在于,当它启动后我在 GUI 中时,我可以检查ifconfigIP 地址是什么,以便我可以ssh从主机上的终端进入它,显然可以'不要在后台这样做。
假设在网络上动态分配 IP 地址,有没有办法将分配的 IP 提取到新创建的实例以用于 ssh 目的,或者有没有办法在不知道 IP 的情况下通过 ssh 进入它(例如,通过主机上的后门端口) )?
Chr*_*ton 21
您可以使用 VBoxManage 命令提取 IP 地址,如virtualbox.org 上的此论坛帖子所示:
VBoxManage guestproperty enumerate <vmname>
Run Code Online (Sandbox Code Playgroud)
但是,除非您有很好的理由,否则您会强烈考虑为您的来宾虚拟机分配一个静态 IP 地址。即使您可能正在使用 DHCP,这也是可能的。只需选择 DHCP 服务器分配的范围之外的 IP 地址。
小智 10
首先确保你已经安装了VirtualBox 扩展包,如果没有,请安装它。
例如(对于 Ubuntu)
> wget http://download.virtualbox.org/virtualbox/4.2.12/Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack
> sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack
Run Code Online (Sandbox Code Playgroud)
或来自
https://www.virtualbox.org/wiki/Downloads
之后,您可以获得VM的IP
VBoxManage guestproperty enumerate <_name_of_VM_> | grep IP | grep -o -w -P -e '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
Run Code Online (Sandbox Code Playgroud)
小智 9
您无需安装 Guest Addition 即可完成此操作
一个用于互联网通信,
第二个用于仅主机通信
您可以使用命令VBoxManage list查看网络
NAT网络:
% VBoxManage 列出 natnet 网络名称:NatNetwork IP:10.10.12.1 网络:10.10.12.0/24 启用 DHCP:是 启用:是
仅主机网络
% VBoxManage 列出主机唯一的ifs 名称: vboxnet0 DHCP:禁用 IP地址:192.168.6.1 网络掩码:255.255.255.240
这是主要部分
显示正在运行的虚拟机
% vboxmanage 列出正在运行的虚拟机
“centos7节点0 ip测试”{46ec9075-f49b-4d16-9867-d56710b6a3da}
我们需要VM uuid,
它是46ec9075-f49b-4d16-9867-d56710b6a3da
现在我们可以获取 MAC 地址
% vboxmanage showvminfo --详细信息 46ec9075-f49b-4d16-9867-d56710b6a3da | fgrep MAC NIC 1:MAC:08002783E8BB,附件:NAT 网络“NatNetwork”,电缆已连接:打开,跟踪:关闭(文件:无),类型:82540EM,报告速度:0 Mbps,启动优先级:0,Promisc 策略:拒绝,带宽组别:无 NIC 2:MAC:080027D992F0,附件:仅主机接口“vboxnet0”,已连接电缆:打开,跟踪:关闭(文件:无),类型:82540EM,报告速度:0 Mbps,启动优先级:0,Promisc 策略:拒绝, 带宽组: 无
08002783E8BB 用于“NatNetwork”网络
中的第一个适配器
080027D992F0 用于“vboxnet0”接口的第二个适配器
现在我们可以从 DHCP 表中获取第一个适配器的 IP
% vboxmanage dhcpserver findlease --network NatNetwork --mac-address=08002783E8BB IP地址:10.10.12.4 MAC 地址:08:00:27:83:e8:bb 状态:已确认 发布时间:2020-07-13T13:31:20Z (1594647080) 过期: 2020-07-13T13:41:20Z (1594647680) TTL:600 秒,目前还剩 586 秒
第二个
% vboxmanage dhcpserver findlease --interface vboxnet0 --mac-address=080027D992F0 IP地址:192.168.6.3 MAC 地址:08:00:27:d9:92:f0 状态:已确认 发布时间: 2020-07-13T13:29:06Z (1594646946) 过期: 2020-07-13T13:39:06Z (1594647546) TTL:600 秒,目前还剩 399 秒
请注意,
对于 nat 网络,我们使用选项 --network
对于仅主机适配器,我们使用选项 --interface
现在我们通过 ssh 从主机连接到该虚拟机
% ssh root@192.168.6.3 root@192.168.6.3 的密码: 最后登录:2020 年 7 月 13 日星期一 09:05:33 [root@node0 ~]#
小智 5
我知道我参加这个聚会迟到了,但这将适用于 VirtualBox 5.0.6。
这使用 VBoxManage 来获取正在运行的虚拟机列表,循环查询它们的属性,并以漂亮的方式显示 IP 地址。
#!/bin/bash
for f in $(VBoxManage list runningvms | awk -F\" '{print $2}'); do
echo "$f:"
VBoxManage guestproperty enumerate "$f" | grep IP
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80779 次 |
| 最近记录: |