Putty 无法连接到 Windows 10 主机上的第二个 VirtualBox VM

Putty 无法连接到 Windows 10 主机上的第二个 VirtualBox VM

我在 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 连接到两个正在运行的虚拟机?

我的问题是什么?

  • 我是否忽略了一个明显的连接字符串?
  • 我是否忽略了一些基本的网络原理?
  • 我不可以这么做吗?

期望的行为

我想

  1. 同时运行两台虚拟机。
  2. 在我的主机上运行两个实例或 PuTTY。
    • 一个PuTTY将ssh连接到机器A
    • 一个PuTTY将ssh连接到机器B
  3. 在我的笔记本电脑上运行 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.2ping 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网络连接进入出站/入站规则。

进一步阅读:

相关内容