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