来自外部 Vagrant 框的连接被拒绝,具有专用网络

Mag*_*nar 9 nginx centos vagrant

我已经在一个带有私有网络 IP 的流浪盒子上设置了 CentOS 6。我可以使用 IP SSH 进入盒子,这样就可以了。但是,我在卷曲它时在端口 80 上收到拒绝连接。里面有一个非常基本的 nginx 提供其默认的欢迎页面。从盒子内部卷曲它是有效的。

Vagrant.configure("2") do |config|
  config.vm.box = "Centos-6.3-minimal"
  config.vm.box_url = "https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box"

  config.vm.network :private_network, ip: "192.168.33.44"
  config.vm.hostname = "local.example.com"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end
end
Run Code Online (Sandbox Code Playgroud)

以下是我尝试过的一些事情:

  • 更改为端口转发 80 -> 8080。Curling onlocalhost:8080就挂在那里。
  • 尝试另一个 IP 地址。没有不同。
  • 打开python -m SimpleHTTPServer即知监听的服务器上0.0.0.0。仍然拒绝连接。

众所周知,这些东西是有效的:

  • 使用给定的专用网络 IP SSH 连接到服务器有效。
  • 从盒子内部卷曲工作。
  • 相同的设置适用于真实服务器。

我已经安装了 Guest Additions,但是它们在来宾和主机上的版本不同。这可能是问题所在。但是为什么 SSH 可以工作,而不是端口 80?这是我做的输出vagrant reloadhttps : //gist.github.com/magnars/496e553f07ad5c770c54

更新

虽然这不起作用:

config.vm.network :forwarded_port, guest: 80, host: 8080
Run Code Online (Sandbox Code Playgroud)

这样做:

ssh -f deploy@local.example.com -L 8080:127.0.0.1:80 -N
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

kdt*_*kdt 5

尽管有很多可能是错误的,但首先要检查的是来宾内部的防火墙:它可能很简单,因为它有一个针对端口 22 而不是端口 80 的规则。