Virtualbox- 在 Headless 模式下 运行 时无法访问 VM

Virtualbox- Cant access to VM when running in Headless mode

我在 virtualbox 上安装了带有 openssh serverubuntu server,它工作正常。当我从 GUI 启动它时,我可以通过 ssh 和 Putty 访问它,没有问题。当我从 virtualbox gui 以无头模式启动它时,也没有问题。

问题是,当我 运行 它使用 VBoxManage startvm "Ubuntu" --type headless 它 returns 一条消息说 Ubuntu 在无头模式下 运行ning 但是当我想通过 ssh 连接到它时,它无法访问。我的 host os 是 windows 10,ubuntu 服务器名称是 "Ubuntu",os 版本是 ubuntu-16.04.2-server-x64,我按照此处所述安装了 openssh-serverdkmshttps://www.htpcbeginner.com/install-virtualbox-guest-additions-on-ubuntu-debian/

当我在 GUI 中工作时,一切都很好,但我想从 windows 命令行 运行 它以节省一些时间。

看起来命令行 vm "Ubuntu" 与 GUI vm "Ubuntu" 不同。但是我在 virtualbox 上只有一个虚拟机。在 gui 中有一个,在 cmd vboxmanage list vms returns 中有一个 vm。那么问题是什么? 我还在 virtualbox GUI

的 Device 菜单中添加了 virtualbox guest addition

编辑:

我看到另一个命令:VBoxHeadless --startvm "Ubuntu"它也不起作用。但与上一个命令不同的是,它不显示 Ubuntu 是 运行 的消息。实际上它会卡在执行中并且光标永远变成闪烁的破折号。所以我应该 close 命令来使用它。

我检查了一些东西。如果我在网络适配器和端口转发上使用 NAT,它甚至可以从 cmd 运行。但是当使用网桥避免使用端口转发时,它不起作用。在桥接模式下,存在连接并且 ping 正常但无法通过 ssh 连接到 Ubuntu.

我找到了解决方案。解决方案是我应该默认将 NAT 接口保持为主要接口,并在 virtualbox gui 设置中创建辅助接口。辅助接口应该是 Host-only。然后通过使用 this 问题及其答案,我将访客 Ubuntu 的接口添加到静态地址。现在我可以通过 ssh 连接到静态 IP 地址,即使我从命令行 运行 虚拟机,也不需要端口转发。