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

Thi*_*res 44 ruby web-services sinatra

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

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

我在不同的网络和计算机上测试了相同的场景.

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

mat*_*att 89

有一个最近承诺西纳特拉,改变默认的监听地址,以localhost0.0.0.0发展模式,由于安全问题.

为了明确允许从网络访问,您需要以其他模式(例如生产)运行应用程序,或将bind选项设置为0.0.0.0.

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

$ ./my_sinatra_file.rb -o 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用`set:bind,'0.0.0.0'`直接在您的应用中设置它 (10认同)
  • 最近的提交是在@ matt的答案时最近提交的,但是这是一年之后,默认绑定被埋没在Sinatra文档中,并且在"入门"中没有提到.哎呀... (2认同)
  • `RACK_ENV ='生产'ruby sinatra.rb`成功了! (2认同)

DGM*_*DGM 5

确保sinatra服务器不仅侦听localhost(127.0.0.1)IP地址。

  • 阅读Sinatra帮助,或使用-h标志运行服务器。告诉你怎么做 (3认同)