无法从同一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中执行此操作:
- 点击Windows键
- search防火墙,然后回车
- 转到高级设置
- 点击左上angular的入站规则
- 点击右上angular的新规则
- 点击端口选项
- input你的端口(对于Sinatra可能是4567)
- 下一个
- 现在select从域名/私人/公共。
现在要考虑的另一件事是谁可以访问您的Web服务器。 如果你想要任何人,然后select公开。 我不确定(并且会喜欢其他的input)如何只在同一个公共networking上连接设备。 你也可以允许特定的IP地址,但为此我build议你自己做一些研究。