如何从同一网络内的另一台计算机通过 ssh 连接到 VirtualBox VM?

如何从同一网络内的另一台计算机通过 ssh 连接到 VirtualBox VM?

我家里的两台不同计算机上有两台虚拟机。在其中一台虚拟机上(我们称之为 comp1;comp1 有一台装有 Ubuntu 虚拟机的 Windows 10 主机),我已经设置了虚拟机的网络,以便我可以从主机 ssh 连接到虚拟机。我按照此网站上的说明进行设置(https://medium.com/nycdev/how-to-ssh-from-a-host-to-a-guest-vm-on-your-local-machine-6cb4c91acc2e)。

当我尝试通过 ssh 连接到 comp1 的 Ubuntu 虚拟机时,收到以下消息:

ssh: connect to host 127.0.0.1 port 5679: Connection refused

请告诉我是否需要在 comp2 的 VM 上进行更多设置才能使两者连接起来。

答案1

您遵循的说明是技术上准确,但它们也比大多数非企业环境中所需的更复杂。您无需设置端口转发或虚拟网络设备即可实现此功能。

在 VirtualBox 中执行以下操作:

  1. 消除虚拟机的端口转发规则
  2. 断开虚拟网络接口与虚拟机的连接
  3. 将网络设置为“桥接”模式,选择主网络适配器作为桥接器,然后在“高级”下确保混杂模式为“全部允许”

现在以下事情都是可能的:

  1. VM 可以从网络上的 DHCP 主机接收 IP 地址(或者您可以在 VM 本身内配置静态 IP)
  2. ufw虚拟机可以接收所有发往它的流量,并通过规则等选择要响应的内容

在虚拟机中:

  1. 确认 OpenSSH 已设置ufw
    sudo ufw status
    
    如果您看到一条消息说该端口ufw已禁用,则请保留它。如果已启用,您需要确认ALLOW端口 22 旁边有一条记录。
  2. 确认虚拟机的IP地址:
    ip a
    
    您将看到有关所有网络接口的信息。您需要与您的网络模式匹配的 IP 地址,例如192.168.0.x
  3. 在另一台计算机上,通过 SSH 进入虚拟机:
    ssh [email protected]
    
    确保用正确的名称替换用户名,并用正确的地址替换 IP 地址。

如果一切顺利,请对另一台虚拟机执行相同的步骤。

相关内容