通过VBox NAT进行端口转发,以便从主机到VirtualBox Guest虚拟机进行SSH连接

尽pipeVirtualBox已经投入了大量的工作来简化这个过程,但我真的无法正常工作。

目标是:能够运行一台无头的VirtualBox虚拟机,我可以从主机SSH进入。

当我尝试从主机到客户端的SSH时出现当前的错误消息:

$ ssh -p 2222 user@localhost ssh_exchange_identification: Connection closed by remote host 

SSH在客户虚拟机上工作得很好,而且客户可以自己SSH连接而不出问题。 我非常肯定,问题是从主机到客户端的连接转发,因为我的SSH到客户端的尝试甚至不会出现在客户端的SSH日志文件中。 因此,连接绝不能到达机器。

VirtualBox的当前configuration:

我已经遵循了通过VB NAT进行端口转发的两种主要方法,如VBox手册和各种论坛中所述。 我用了“老”的方式 :

 $ VBoxManage setextradata "VM Name Here" \ "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP $ VBoxManage setextradata "VM Name Here" \ "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22 $ VBoxManage setextradata "VM Name Here” \ "VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 2222 

除了VBox手册中的“新”方式之外,

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

我知道第一组命令生效了,因为我可以在虚拟机的* .vbox XMLconfiguration文件中看到它们,而且我知道第二个命令起作用,因为当我看到:

 VBox --> (Select VM) --> Settings --> Networking --> Advanced --> Port Forwarding 

我在对话框中看到我创build的“guestssh”端口向前定义。

另外,我添加了这一行:

 sshd:ALL 

到guest虚拟机的/etc/hosts.allow,并且主机或guest虚拟机上都没有运行防火墙。

主机是Ubuntu 11.04。 客人是Fedora 16. VirtualBox是版本4.1.0 r73009。

有没有人有任何想法?

[解决了]

好吧,很明显,这个问题出现在访客虚拟机中,关于防火墙:

 1) iptables -L showed that everything was set to 'ALLOW' 2) Looking at the Firewall GUI, SSH was allowed through 3) I had disabled the Firewall from the GUI 

这些都没有解决这个问题。

 $ sudo systemctl stop iptables.service 

没有解决它,要么。 但:

 $ sudo systemctl disable iptables.service 

是的,最后,解决它。 这似乎非常严重,但没有别的工作。 我不确定这是一个错误,还是什么,但现在起作用。