【问题标题】:Vagrant port forwarding from Macos to Ubuntu not working从 Macos 到 Ubuntu 的 Vagrant 端口转发不起作用
【发布时间】:2015-04-26 01:40:52
【问题描述】:

我在 Macos 10.10.2 上以 Ubuntu 14.04 服务器作为访客运行 Vagrant。在ubuntu系统上,我安装了rails 4.2.0(ruby 2.1.5)。

问题是我无法从主机访问 rails web 服务器。 vagrant box 设置了端口转发,如下所示:

config.vm.network "forwarded_port", guest: 3000, host: 8080

但是,似乎没有 HTTP 请求到达它。卷曲到它时(通过端口转发),我得到以下结果,并且 Web 服务器的日志没有报告任何请求:

$ curl localhost:8080
curl: (52) Empty reply from server

在 ubuntu 机器上进行本地卷曲会生成网页。

在我看来,Mac 或 Ubuntu 服务器上的防火墙阻止了呼叫。运行 nmap 时,只发现 22 和 111 端口打开:

$ nmap -P0 192.168.33.10
Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-24 12:55 CET
Nmap scan report for 192.168.33.10
Host is up (0.0019s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind

但是,Mac 和 ubuntu 服务器上都没有运行防火墙;在后者上,甚至没有安装 iptables。

我已经查看了有关此主题的其他几个问题,包括以下问题,但它们似乎与我的情况无关。 Vagrant Port Forwarding not working Vagrant's port forwarding not working Vagrant port forwarding not working on Mavericks

我还能尝试什么?

【问题讨论】:

  • # netstat -tulpn 是命令。取自here。您在 VM 中的服务器必须监听 0.0.0.0 或 VM 的 IP 地址,而不是 127.0.0.1

标签: ruby-on-rails vagrant virtualbox


【解决方案1】:

我在使用 django 服务器时遇到了同样的问题,并且从您的类似链接问题中看到其中一个 cmets,如果您启动绑定到 127.0.0.1 的服务器,那么它仅在虚拟主机的环回接口上,但如果您将其启动到 0.0.0.0 然后它将接受该端口上的所有传入连接。

您还可以查看此问题以获取有关指定 rails ip 地址绑定的详细信息: How to change the default binding ip of Rails 4.2 development server?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多