Rails应用程序对本地网络不可见

Bri*_*lue 24 ruby-on-rails osx-yosemite

自升级到OSX Yosemite以来,我第一次需要在同一网络上的另一台机器上查看我的机器上运行的应用程序.以前,这就像找到我的内部IP地址并使用端口3000一样简单,例如.http://192.168.0.111:3000.

但是,我现在发现Yosemite这不起作用.应用程序肯定在运行,可以localhost:3000通过我的内部IP获得.

我已经运行了网络实用程序端口扫描程序,它显示localhost公开了端口3000,但我的IP没有.网络上尚未升级的其他机器(10.7.5和10.9.5)没有此问题.

任何帮助将不胜感激.

编辑:根据系统首选项的安全和隐私窗格,Yosemite防火墙当前已关闭 - 因此不会导致问题.

Mat*_*son 48

默认情况下,rails server只接受来自localhost的连接.您可以通过查看控制台输出来检查:

Listening on localhost:3000, CTRL+C to stop
Run Code Online (Sandbox Code Playgroud)

要侦听允许您从本地网络上的其他计算机进行连接的所有地址,必须显式绑定到更宽松的地址.试试这个:

rails server --binding=0.0.0.0
Run Code Online (Sandbox Code Playgroud)

你现在应该看到:

Listening on 0.0.0.0:3000, CTRL+C to stop
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过浏览到例如,从本地网络上的其他位置连接到您的Rails应用程序http://192.168.0.111:3000.

  • 还有一个快捷方式`rails s -b 0.0.0.0` (5认同)