VirtualBox Host ssh到Guest


53

我有一个Mac主机和一个VirtualBox Linux来宾,当前正在使用桥接模式。

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

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

网络上的其他计算机不需要访问来宾。

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


1
与此相关,考虑启动VB客人无需界面:superuser.com/questions/135498/...
法布里西奥PH

Answers:


36

首先,您必须创建vboxnet0接口。

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

然后,在主机上运行它。您会看到一个新的界面vboxnet0

ifconfig

关闭您的VM并执行以下操作:

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

在来宾运行时启动VM

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
谢谢,我最终启用了VirtualBox端口转发功能,并能够通过进行连接ssh localhost -p 7022
托马斯·亨特

很好,港口转运就像魅力一样。虽然我在Virtualbox GUI中而不是在VBoxManage中进行配置。在那里,您还需要设置主机和来宾IP地址,分别为127.0.0.1和10.0.2.15。
塞巴斯蒂安·甘斯兰德

小编辑第一句。它应显示为:VirtualBox>设置>网络>'仅主机的网络'>添加(您将获得vboxnet0)
史蒂夫·

我已经针对仅主机设置完成了所有这些操作,当我尝试从主机ssh进入时,它只是挂起(直到超时)。还有别的事吗?
克里斯·威斯汀

37

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

在此处输入图片说明

然后从您的主机系统运行

ssh -p 5679 127.0.0.1

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


8
我所做的完全一样,只是没有输入任何“主机IP”和“来宾IP”。
Damien Cassou 2013年

在我的情况下,ubuntu映像未随ssh一起安装(我本来希望如此)。因此,我运行了“ apt-get install openssh-server”,并能够与“ ssh -p 5679 localhost”连接。根据其他评论,我没有放置任何主机或来宾IP。
Pierre-Antoine

2

如果您不想弄乱端口转发,可以设置一个仅主机的适配器,该适配器显示为主机接口,然后在来宾的该子网内添加IP地址。

脚步:

  • 在Virtualbox中创建一个仅主机的网络(GUI->设置->网络)。键入ifconfig主机和看到类似vboxnet0inet 192.168.50.1
  • 在访客中,添加一个IP地址: ifconfig eth1 192.168.50.101 netmask 255.255.255.0 up
  • 在主机中,执行 ssh root@192.168.50.101

进一步阅读:


1

如果要大量移动,最好以NAT模式配置虚拟NIC。使用NAT,主机(您的PC)将成为为访客OS创建的专用网络的DHCP服务器和路由器。我很确定您也可以使用NAT设置静态地址...

但是,我认为最好的解决方案是找出为什么来宾VM不能使用名称解析的方法:)

https://www.virtualbox.org/manual/ch06.html#network_nat


2
我设置了NAT模式,为我的客人分配了IP 10.0.2.15。但是,从主机(其IP为192.168.1.120),我无法联系来宾。该指南能够为我解释不同的模式,但似乎并没有解决我的问题的方法。
托马斯·亨特

0

非常有帮助,让我朝正确的方向前进。谢谢。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.