2015-02-24 94 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?