我在 Windows 10 上运行 VirtualBox。一段时间以来,我一直在使用 PuTTY 连接到我的 Ubuntu 16.04 VM。我最终决定要使用 Ubuntu 18.xx。因此,我启动了一个新的 VM,并像配置我的 16.04 VM 一样对其进行配置。
我已经添加了 SSH 密钥并完成了整个import -> puttygen -> ppk
操作。
过去 6 个月里,我这样做过几次。但每次都无法连接到第二台虚拟机。
我注意到两个虚拟机在 NAT 后面的 IP 地址相同,都是 10.0.2.15。我从 获得这个信息ifconfig
。这重要还是无关紧要?
我尝试添加端口转发规则、桥接适配器和无数其他东西,但都没有用。
问题
我需要什么样的设置才能通过 SSH 连接到两个正在运行的虚拟机?
我的问题是什么?
- 我是否忽略了一个明显的连接字符串?
- 我是否忽略了一些基本的网络原理?
- 我不可以这么做吗?
期望的行为
我想
- 同时运行两台虚拟机。
- 在我的主机上运行两个实例或 PuTTY。
- 一个PuTTY将ssh连接到机器A
- 一个PuTTY将ssh连接到机器B
- 在我的笔记本电脑上运行 PuTTY(与台式机位于同一办公网络)
- 将其指向任一虚拟机。
我发誓我并不懒惰。过去几个月我花了无数的时间试图实现这个目标。这是一个很不错的项目,只要时间允许,我每隔一个月就会回来做。
当前行为
我可以从主机上使用 PuTTY ssh 进入我的 16.04 VM。我可以从笔记本电脑上使用 PuTTY ssh 进入我的 16.04 VM。
我无法从主机或笔记本电脑通过 ssh 进入 18.10 VM。
答案1
要从主机连接虚拟机,虚拟机需要一个仅主机网络接口。这里的主要目标是在虚拟机中创建两个网络接口。第一个网络适配器将具有 NAT 网络(默认情况下启用 DHCP)。这将虚拟机与外部互联网连接起来。第二个适配器将连接到仅主机接口。这将虚拟机与主机操作系统连接起来以进行 SSH、RDP、Docker 或其他连接。
以下是我的设置配置。这些配置可能因您的系统而异。根据需要更改这些 IPv4 IP 地址,但请注意 IP 不应与其他专用网络冲突。主机专用网络应在主机和客户机操作系统中位于同一子网中。
主机操作系统:Windows 10
- 仅主机适配器名称:VirtualBox 仅主机以太网适配器
- 仅主机适配器 IP 地址:192.168.99.1/24 网关——可选
客户操作系统:Ubuntu 18.10
- 虚拟机名称:Ubuntu
- NAT 适配器(eth0):IPv4 -- 10.0.2.15/24(DHCP)网关 -- 10.0.2.2
- 仅主机适配器 (eth1):192.168.99.100 (静态) 网关 - 可选
假设 Ubuntu VM 安装在 VirtualBox 中。现在按照这些命令在主机端配置网络。可以在 VirtualBox 管理器窗口中执行相同的步骤。
创建仅主机接口(可选,预安装):
VBoxManage hostonlyif create
添加静态 IPv4 地址(或使用
ncpa.cpl
):VBoxManage hostonlyif ipconfig "VirtualBox Host-Only Ethernet Adapter" --ip 192.168.99.1 --netmask 255.255.255.0
将适配器 1 连接到 NAT:
VBoxManage modifyvm Ubuntu --nic1 nat
将适配器 2 连接到仅主机接口:
VBoxManage modifyvm Ubuntu --nic2 hostonly
启动虚拟机。打开终端,使用命令禁用接口。通过在文件sudo ifdown -a
中添加以下行,在仅主机网络接口 (eth1) 中添加静态 IPv4 IP 地址:/etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.99.100
netmask 255.255.255.0
保存该文件。使用命令启用所有接口。使用和命令sudo ifup -a
检查两个网络接口是否正常工作。如果两个接口都正常工作,则:ping 10.0.2.2
ping 192.168.99.1
- 安装 SSH:
sudo apt-get install ssh
- 创建 ssh 密钥对:
sudo ssh-keygen -A
- 启动 SSH 服务:
sudo service ssh restart
从主机端启动 putty 或任何 ssh 客户端[email protected]
。如果 Windows 防火墙阻止连接,则允许192.168.99.0/24
网络连接进入出站/入站规则。
进一步阅读: