如何在命令行上将 VirtualBox NIC 配置为桥接适配器

如何在命令行上将 VirtualBox NIC 配置为桥接适配器

我的 Windows 10 主机设置为启动 VirtualBox 虚拟机启动时使用无头模式。我已将虚拟机配置为桥接模式,因此它有自己的 IP 地址。然后我从 Windows 终端通过 SSH 连接到它,这样我就不需要查看或使用 VirtualBox GUI。但是,有时网络接口会出现故障,即使在重置虚拟机后,我也无法连接到虚拟机。

我发现将适配器更改为 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'

我完全明白错误原因,在用户界面上,有一个下拉菜单,我可以选择网络连接,就我而言“英特尔® Wi-Fi 6 AX201 160MHz”。如何在 CLI 上指定它?

答案1

解决方案是指定整个字符串确切地就像在 UI 上显示的那样:

& 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm VMName nic1 bridged "Intel(R) Wi-Fi 6 AX201 160MHz"

请注意,即使(R)有。如果字符串不匹配,CLI 命令也会默默失败,即没有错误消息,但在 VM 终端上我可以看到ip a该接口没有 IP 地址。

顺便说一下,将适配器更改为仅主机也可以做类似的事情:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm VMName nic2 hostonly "VirtualBox Host-Only Ethernet Adapter"

如果有更好的方法来做到这一点,或者有一个 CLI 命令来列出这些字符串,那就太好了。

相关内容