无需 Wi-Fi 即可通过 SSH 访问 VirtualBox 虚拟机

无需 Wi-Fi 即可通过 SSH 访问 VirtualBox 虚拟机

我正在 MacOS 上通过 VirtualBox 运行 Ubuntu 20.04 VM。我设置了两个网络接口。其中一个是桥接连接,另一个设置为“内部网络”。我更喜欢从终端通过 SSH 连接到虚拟机,而不是使用 VirtualBox 的界面。通常,这不是问题,因为我的 Mac 和虚拟机都连接到同一 Wi-Fi 网络。

然而,我想即使没有更大的网络,也有一种 SSH 的方法。当我ip addr在虚拟机上运行时,我看到

2: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c2:f9:eb brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:fb:e3:1a brd ff:ff:ff:ff:ff:ff

我无法使用任何一个 IPv6 地址进行 SSH,甚至运行ping6它们时也会告诉我没有到主机的路由。

答案1

你应该使用仅主机适配器并将其映射到您的访客界面。

您应该在虚拟机设置中创建新适配器,然后将网卡映射到来宾虚拟机设置上的该适配器。

答案2

我记得在火车上需要这个,因为没有 Wi-Fi 就无法通过 SSH 连接到我的机器。我将解释我在 Windows 10 主机上运行的 VirtualBox 上配置此功能的步骤。三件事可能需要:

  1. 在 VirtualBox 中添加仅主机网络。

  2. 在虚拟机中添加新适配器并将其连接到仅主机网络。

  3. 配置新的网络适配器以获取 IP 地址。

添加仅主机网络

在 VirtualBox 6.1 中,我在 UI 中创建了一个主机网络,方法是:文件 > 主机网络管理器。请参阅Oracle文档了解更多。我勾选了自动配置适配器并启用 DHCP 服务器的选项。

将新适配器添加到虚拟机并连接到仅主机网络

我的虚拟机仅启用了一个适配器。在虚拟机网络设置中,我转到适配器 2 选项卡并勾选“启用网络适配器”然后选择“附加到:仅主机适配器”“名称:VirtualBox 仅主机以太网适配器”。这在您的 UI 中可能有所不同。现在,如果我运行ip a( 的快捷方式ip address),我可以看到新适配器为enp0s8。第一个仍然存在,如enp0s3

在虚拟机中配置网络适配器

我的适配器显示为这样,DOWN所以我做的第一件事就是将其打开:

sudo ip link set enp0s8 up

ip a尽管接口已启动,但仍然没有显示 IP 地址。这意味着它不会自动使用 DHCP,我必须对其进行配置才能这样做。请参阅下面我在 Ubuntu 系统上所做的操作。对于您的发行版或者您想要一个版本,它可能会有所不同静态IP反而。

将以下两行添加到/etc/netplan/00-installer-config.yaml

enp0s8:
  dhcp4: true

所以现在看起来像这样:

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: true
  version: 2

接下来是:

sudo netplan --debug generate
sudo systemctl restart systemd-networkd

之后我可以看到enp0s8接口上的 IP 地址,ip a并且我可以使用它通过 SSH 连接到我的虚拟机Windows 终端,即使在飞行模式下!

故障排除:我发现这个解决方案不是很稳定。有时,我仍然可以使用桥接适配器 IP 从主机 ping 虚拟机,但不能使用仅主机网络 IP。重新启动界面、虚拟机甚至 virtualbox 等并不能解决任何问题,但重新启动 Windows 的陈词滥调却恢复了功能。我的建议是,如果这不起作用,请先重新启动 Windows

相关内容