1

为什么 ?

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

当前行为:

Vagrant VM 在导航到“127.0.0.1:2222”时在浏览器中显示“SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1”。2222 是第一个 Vagrant VM 的标准端口。

预期行为:

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

4

2 回答 2

2

MarkBaker 的回答解决了这个问题,但 Vagrant 1.2.7(及更高版本)需要这种语法:

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

完整的Vagrantfile(您可以在 box 文件所在的位置找到它)如下所示:

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在主机浏览器中会显示 VM 的 localhost。

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

于 2013-08-21T11:04:05.463 回答
2

当您运行 vagrant up 时,您会看到一条消息显示 [default] Forwarding ports... -- 22 => 2222(适配器 1)。ssh 正在侦听 VM 上的端口 22,您可以从本地机器 ssh 到端口 22(默认)以连接到 VM;但是,如果您已将 VM 配置为允许外部访问,则另一台计算机上的其他任何人都需要使用您的 IP 地址,但端口 2222 才能连接到 VM。

如果您在工作中的机器上运行 VM,但希望在家中、客户办公室或什至从工作网络中的另一台机器上访问它,这可能会很有用。

使用浏览器连接到 SSH 端口 2222 将重定向到虚拟机上的端口 22,但监听该端口的是 ssh;并且网络浏览器不是 ssh 连接的正确工具。

我个人使用 putty 作为我的 ssh 客户端,但是使用 vagrant 您也可以vagrant ssh在启动虚拟机后发出 a 。

额外的

端口转发的值

如果你设置

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

在您的 vagrantFile 中,并且您已允许对 VM 进行公共访问,那么您可以通过将浏览器指向端口 8080(或 8443 用于 https)而不是比更普通的默认端口 80 和 443... 这对于从笔记本电脑运行演示特别有用

于 2013-08-21T10:42:39.077 回答