我有一个简单的Sinatra服务器,我通过textmate运行,但无法从同一网络上的另一台计算机访问。无法从同一网络上的另一台计算机访问本地Sinatra服务器
我在Mac OS 10.8.3上运行Ruby 1.9.3p327和Sinatra 1.4.1。防火墙已禁用。
我在不同的网络和计算机上测试过相同的场景。
计算机响应简单的ping,但是当我尝试远程登录端口4567时,我无法建立连接。
我有一个简单的Sinatra服务器,我通过textmate运行,但无法从同一网络上的另一台计算机访问。无法从同一网络上的另一台计算机访问本地Sinatra服务器
我在Mac OS 10.8.3上运行Ruby 1.9.3p327和Sinatra 1.4.1。防火墙已禁用。
我在不同的网络和计算机上测试过相同的场景。
计算机响应简单的ping,但是当我尝试远程登录端口4567时,我无法建立连接。
有一个recent commit to Sinatra由于安全考虑,在开发模式下将默认监听地址从0.0.0.0
更改为localhost
。
为了明确允许从网络访问,您需要以其他模式(例如生产)运行您的应用,或将bind
option设置为0.0.0.0
。
您可以使用使用-o
选择建在服务器命令行做到这一点:
$ ./my_sinatra_file.rb -o 0.0.0.0
这工作!谢谢! –
,近期提交了最近在@马特的答案的时候,但在这里它是一年后,默认绑定埋在西纳特拉文档,并在入门没有提及。绑定,“0.0.0.0'' –
您也可以直接使用'设置设置它在你的应用程序! – GuiSim
确保sinatra服务器不仅仅监听本地主机(127.0.0.1)的IP地址。
我该怎么做?对不起,我是一个完整的noob :) –
阅读西纳特拉帮助,或者用'-h'标志运行服务器。它告诉如何做到这一点 –
我插嘴一点点额外的信息,可以帮助我这样的人敲打他们的头靠在壁。
我在Windows机器上,而不是Mac机上,我不得不打开我使用的端口(默认为Sinatra是4567)给公众(即使我在大学网络上)。
要在Windows 10这样做:
现在要考虑的另一件事是谁可以访问您的Web服务器。如果你想要任何人,然后选择公开。我不确定(并且会喜欢其他人的输入)如何只在同一个公共网络上连接设备。你也可以允许特定的IP地址,但为此我建议你自己做一些研究。
你为什么使用telnet?我不明白你想在这里实现什么。 Sinatra是一个Web框架。尝试使用浏览器。 –
不适用于浏览器 –
只是为了确保:您是否在IP地址末尾包含端口号?例如:your.ip.address:4567 –