我有一个简单的Sinatra服务器,我通过textmate运行,但我无法从同一网络上的另一台计算机访问。
我在Mac OS 10.8.3上运行Ruby 1.9.3p327和Sinatra 1.4.1。防火墙已禁用。
我在不同的网络和计算机上测试了相同的场景。
计算机响应简单的ping,但当我尝试telnet端口4567时,我无法建立连接。
答案 0 :(得分:88)
由于安全问题,有一个recent commit to Sinatra在开发模式下将localhost
的默认侦听地址更改为0.0.0.0
。
要明确允许从网络进行访问,您需要以其他模式(例如制作)运行应用,或将bind
option设置为0.0.0.0
。
您可以使用内置服务器使用-o
选项从命令行执行此操作:
$ ./my_sinatra_file.rb -o 0.0.0.0
答案 1 :(得分:5)
确保sinatra服务器不仅侦听localhost(127.0.0.1)的ip地址。
答案 2 :(得分:0)
我正在寻找一些额外的信息,可以帮助像我这样的人撞墙。
我在Windows机器上,而不是Mac机器上,我不得不向公众打开我正在使用的端口(Sinatra默认为4567)(即使我在大学网络上)
要在Windows 10中执行此操作:
现在要考虑的另一件事是谁可以访问您的Web服务器。如果你想要任何人,那就选择公开。我不确定(并希望其他人的输入)如何只让同一公共网络上的设备连接。您也可以通过特定的IP,但为此我建议您自己进行一些研究。