2015-02-24 93 views
1

我在MacOS 10.10.2上运行Vagrant并以Ubuntu 14.04服务器作为guest。在Ubuntu系统上,我安装了rails 4.2.0(ruby 2.1.5)。从MacOS到Ubuntu的流浪端口转发不起作用

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

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

我还能尝试一下呢?

+0

'#netstat的-tulpn'是命令。取自[这里](http://www.cyberciti.biz/faq/what-process-has-open-linux-port/)。您VM *中的服务器*正在侦听“0.0.0.0”或虚拟机的IP地址,而不是“127.0.0.1”。 – zloster 2016-02-15 17:50:06

回答

1

我与django服务器有同样的问题,并在类似的链接问题的一个注释中看到,如果启动服务器绑定到127.0.0.1,那么它只在虚拟主机的环回接口上,但如果将其启动为0.0.0.0,则它将接受该端口上的所有传入连接。

你也可以看到在指定轨道绑定IP地址的详细信息这个问题: How to change the default binding ip of Rails 4.2 development server?