VirtualBox 主机 ssh 到客户机

VirtualBox 主机 ssh 到客户机

我有一台 Mac 主机和一台 VirtualBox Linux 客户机,目前使用桥接模式。

我需要能够轻松地从主机通过 SSH 进入客户机。使用主机名会很好,但使用不变的 IP 地址也可以(目前,IP 会随着我加入的每个新网络而变化,主机名从未起作用)。

我还需要客人的互联网访问。

网络上的其他机器不需要访客访问。

配置我的 VirtualBox 网络的最佳方法是什么?

答案1

首先,您必须创建vboxnet0界面。

VirtualBox > 文件 > 首选项 > 网络 > 仅主机网络 > 添加(您将获得 vboxnet0)

然后,在主机上运行此程序。您将看到vboxnet0出现一个新界面。

ifconfig

关闭虚拟机并执行以下操作:

VM's Settings > System > check "Enable I/O APIC."
VM's Settings > Network > Adapter 2 > host-only vboxnet0

在客户机上运行启动虚拟机

ifconfig

并检查 IP

检查这些链接:

  1. https://forums.virtualbox.org/viewtopic.php?f=8&t=40076
  2. http://www.wiredrevolution.com/virtualbox/setup-ssh-access-between-virtualbox-host-and-guest-vms

也有针对 NAT 的解决方案,但我还没有检查过。

在主机上使用 NAT 配置端口转发

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

通过主机的 2222 端口连接到你的 Linux

ssh -l -p 2222 localhost

对于具有静态 IP 的仅主机网络,请检查以下内容:

https://stackoverflow.com/questions/5906441/how-to-ssh-to-a-virtualbox-guest-externally-through-a-host/27152153#27152153

它适用于 Solaris 10 和 Ubuntu 16.04,但应该很容易适应。

答案2

在两台 Linux 机器(一台 32 位 Ubuntu 主机和一台 64 位 Ubuntu VM)之间,我设法使用此端口转发使 ssh 正常工作:

在此处输入图片描述

然后从主机系统运行

ssh -p 5679 127.0.0.1

5679用端口转发规则中输入的“主机端口”替换。

答案3

如果您不想处理端口转发,您可以设置一个作为主机接口出现的主机专用适配器,然后在客户机的该子网内添加一个 IP 地址。

脚步:

  • 在 Virtualbox 中创建一个仅主机网络(GUI -> 设置 -> 网络)。输入ifconfig主机,然后会看到类似以下vboxnet0内容inet 192.168.50.1
  • 在 guest 中,添加 IP 地址:ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
  • 在主机中,执行ssh [email protected]

进一步阅读:

答案4

非常有帮助,为我指明了正确的方向。谢谢。

我必须转到 > VirtualBox > 文件 > 主机网络管理器 > vboxnet0 > 手动配置适配器 > IPv4 地址并将其设置为客户机的 ifconfig。出于某种原因,主机和客户机给我的 IP 不同。

提到但要明确一点,我必须将 127.0.0.1 的端口转发端口设置为 5679,而不是默认的 ssh 端口 22,因为该端口已被主机自己的 ssh 通信使用。

相关内容