Vagrant VM显示“;SSH-2.0-打开SSH_5.9p1 Debian-5ubuntu1.1〃;当导航到“;1


Vagrant VM shows "SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1" in browser when navigating to "127.0.0.1:2222"

为什么

我已经设置了一个非常简单的服务器,就像以前50次一样,但这是我第一次尝试使用Vagrant。

当前行为:

Vagrant VM显示";SSH-2.0-打开SSH_5.9p1 Debian-5ubuntu1.1〃;当导航到";127.0.0.1:2222";。2222是第一个Vagrant VM的标准端口。

预期行为:

127.0.0.1应该显示apache2 web文件夹的index.html/php。

当你运行一个流浪者时,你会看到一条消息,显示[默认]转发端口…--22=>2222(适配器1)。ssh在您的虚拟机上的端口22上侦听,您可以从本地箱ssh到端口22(默认值)来连接到虚拟机;但是,如果您已将VM配置为允许外部访问,那么其他计算机上的任何人都需要使用您的IP地址(端口2222除外)来连接到VM。

如果你在工作中在盒子上运行虚拟机,但希望在家里、客户办公室,甚至在工作网络中的另一台机器上访问它,这可能会很有用。

使用浏览器连接到SSH端口2222将重定向到虚拟机上的端口22,但在该端口上侦听的是SSH;web浏览器不是ssh连接的合适工具。

就我个人而言,我使用putty作为ssh客户端,但对于流浪者,您也可以在启动虚拟机后发出vagrant ssh

附加

端口转发的值

如果设置

config.vm.network :forwarded_port, guest: 80, host: 8080 
config.vm.network :forwarded_port, guest: 443, host: 8443 

在你的流浪文件中,并且你已经允许对虚拟机进行公共访问,那么你就可以在家里访问虚拟机上的Web服务器,将浏览器指向端口8080(或8443表示https),而不是更正常的默认端口80和443……这对于从笔记本电脑上运行演示非常有用,当您的虚拟机在办公桌下的大型桌面上运行时,您可以将其带到客户端站点MarkBaker的答案解决了这个问题,但Vagrant 1.2.7(及更新版本)需要以下语法:

# Forward guest port 80 to host port 80
config.vm.forward_port 80, 80

完整的Vagrantfile(你可以在你的盒子文件所在的地方找到它)看起来像这样:

Vagrant::Config.run do |config|
  # Forward guest port 80 to host port 80
  config.vm.forward_port 80, 80
end

此示例将主机操作系统中端口80(标准端口)上的请求路由到Vagrant VM中的端口80。结果是,主机浏览器中的http://127.0.0.1将向您显示虚拟机的本地主机。

使用多个虚拟机时,请注意,您应该为每个虚拟机使用一个唯一的端口。