1

我在 osx 10.8 上运行 vmware fusion 5,我的客户操作系统是 Arch Linux,目前我可以通过 ssh 完美地进入客户操作系统,ssh 172.16.4.191但是当我尝试一个简单的 sinatra 应用程序时

require 'sinatra'

get '/hi' do
  "Hello world!!!!!!!"
end

ruby hi.rb

2013-04-06 19:45:18] INFO  WEBrick 1.3.1
[2013-04-06 19:45:18] INFO  ruby 2.0.0 (2013-02-24) [x86_64-linux]
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from WEBrick
[2013-04-06 19:45:18] INFO  WEBrick::HTTPServer#start: pid=426 port=4567

它在我的主机操作系统中不可用

curl 172.16.4.191:4567
curl: (7) couldn't connect to host

任何建议都会很棒,当然我会根据需要提供更多信息。

编辑:

与我的mac共享被选中,“虚拟机在外网共享mac的ip地址。mac为虚拟机的网络流量提供NAT”

编辑:

我已经切换到桥接模式,它现在位于我的局域网上,我仍然可以 ssh 进入它,但连接到我的 sinatra 应用程序仍然没有这样的运气。

并且 iptables 没有显示任何规则

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
4

2 回答 2

12

您的 hi.rb 中需要这一行:

set :bind, '0.0.0.0'

文档说“ 0.0.0.0”是默认值。这是错的。

于 2013-04-07T10:19:35.407 回答
0

以防万一有人试图在带有 NAT/sinatra 的 vmware 的 mac/windows 7 上执行此操作,请确保已安装并配置了 IIS 管理器(连接到服务器 -> localhost:4567)。

在我的 Windows 浏览器中,localhost:4567/promo_id/ 有效

从我在 mac 中的浏览器, http://172.16.178.xxx:4567/ promo_id / 其中 172.16.178.xxx 是来自 ipconfig 的 IPv4 地址

于 2014-06-20T01:24:39.803 回答