无法从同一networking上的另一台计算机访问本地Sinatra服务器

我有一个简单的Sinatra服务器,我通过textmate运行,但我无法从同一networking上的另一台计算机访问。

我在Mac OS 10.8.3上运行Ruby 1.9.3p327和Sinatra 1.4.1。 防火墙被禁用。

我在不同的networking和计算机上testing了相同的场景。

计算机响应简单的ping,但是当我尝试telnet 4567端口时,我无法build立连接。

由于安全考虑,在开发模式中,Sinatra最近承诺将默认侦听地址从0.0.0.0更改为localhost

为了明确允许从networking访问,您需要以另一种模式(例如生产)运行您的应用程序,或将bind选项设置为0.0.0.0

您可以使用-o选项使用内置服务器从命令行执行此操作:

 $ ./my_sinatra_file.rb -o 0.0.0.0 

确保sinatra服务器不仅仅监听本地主机(127.0.0.1)的IP地址。

我正在寻找一些额外的信息,可以帮助像我这样的人撞墙。

我在一台Windows机器上,而不是一台Mac机上,而且我不得不打开我使用的端口(默认是4567)给公众(尽pipe我在大学networking上)。

在Windows 10中执行此操作:

  1. 点击Windows键
  2. search防火墙,然后回车
  3. 转到高级设置
  4. 点击左上angular的入站规则
  5. 点击右上angular的新规则
  6. 点击端口选项
  7. input你的端口(对于Sinatra可能是4567)
  8. 下一个
  9. 现在select从域名/私人/公共。

现在要考虑的另一件事是谁可以访问您的Web服务器。 如果你想要任何人,然后select公开。 我不确定(并且会喜欢其他的input)如何只在同一个公共networking上连接设备。 你也可以允许特定的IP地址,但为此我build议你自己做一些研究。