我正在 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 上配置此功能的步骤。三件事可能需要:
在 VirtualBox 中添加仅主机网络。
在虚拟机中添加新适配器并将其连接到仅主机网络。
配置新的网络适配器以获取 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。