从另一台PC访问WEBrick

时间:2010-11-28 13:19:11

标签: ruby-on-rails ruby ruby-on-rails-3

我用过:

rails s 

run webrick on 0.0.0.0:3000

但是我无法从另一台PC上访问网络应用程序。

如何在Rails 3中实现这一目标?

5 个答案:

答案 0 :(得分:14)

默认绑定IP为0.0.0.0,因此问题可能是您的防火墙阻止了该端口。尝试使用rails s -b IP_ADDRESS -p PORT来确定您的防火墙存在问题。

顺便说一下。 Linux,Osx,Windows?

答案 1 :(得分:5)

Nucc做对了。您应该可以通过您的IP地址访问该网站,但据我所知,您正试图通过0.0.0.0(我错误地认为这是一个空地址,我的错误),因为Nucc正确地指出0.0.0.0映射到INADDR_ANY将映射到您的所有网络接口。

如果要指定使用的特定IP地址(假设您的IP地址为192.168.0.50):

rails s -b 192.168.0.50

我会将默认端口保持为3000,这样如果你在计算机上运行一个,就不要与真正的网络服务器发生冲突,但如果你不能随意改为80,那么:

rails s -b 192.168.0.50 -p 80

-b命令行参数更改WEBrick绑定的IP地址,-p参数更改默认端口。有关选项的完整列表,请输入:

rails s -h

如前所述,如果您使用的是软件防火墙,则需要确保端口已打开。如果您没有尝试使用0.0.0.0但是使用了第二台计算机中的正确IP地址,那么这可能是罪魁祸首。

现在从另一台计算机到达您的rails网站,您只需输入一个浏览器:

http://192.168.0.50:3000

或者,如果您已将默认端口更改为标准端口80,则可以使用:

http://192.168.0.50

答案 2 :(得分:5)

(抱歉,我无法回复:()

  

“默认绑定IP地址为0.0.0.0,无法从另一台计算机访问,因为这是一个不可路由的地址。”

抱歉,但事实并非如此。这里0.0.0.0表示INADDR_ANY,因此它绑定到所有接口......

答案 3 :(得分:2)

如果连接是通过局域网,那么使用终端上的 ifconfig 命令找到 inet 地址,它会像 192.148.0.100,并使用 192.148.0.100:3000 3000 是服务器运行的端口。

答案 4 :(得分:0)

确保您没有阻止该端口的防火墙。当你试图从另一台机器上击中它时,还要确保包含该端口。就rails而言,它应该正常工作。