我的 Windows 10 主机设置为在启动时以无头模式启动VirtualBox 虚拟机。我将虚拟机配置为桥接模式,因此它有自己的 IP 地址。然后我从 Windows 终端 SSH 到它,所以我不需要查看或使用 VirtualBox GUI。但是,有时网络接口出现异常,我无法连接到 VM,即使在 VM 重置后也是如此。
我发现将适配器更改为 NAT,然后再改回桥接,可以解决问题。但这意味着必须转到 GUI,所以现在我想在命令行上执行此操作,这样我就可以运行一个脚本。
这就是我在终端提示符下将其更改为 NAT 的方式:
& 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm VMName nic1 nat
以上工作正常,但如果我尝试将其更改回桥接:
& 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm VMName nic1 bridged
VBoxManage.exe: error: Missing argument to 'bridged'
我完全得到了错误,在 UI 上,有一个下拉菜单,我选择了网络连接,在我的例子中是"Intel(R) Wi-Fi 6 AX201 160MHz"。如何在 CLI 上指定它?
解决方案是完全按照 UI 上显示的方式指定整个字符串:
请注意,即使
(R)
存在。如果字符串不匹配,CLI 命令会静默失败,即没有错误消息,但在 VM 终端上我可以看到ip a
接口没有 IP 地址。顺便说一句,将适配器更改为 Host-Only 也做了类似的事情:
很高兴知道是否有更好的方法来执行此操作,或者使用 CLI 命令列出这些字符串。