从另一台PC访问WEBrick

mlz*_*boy 8 ruby ruby-on-rails ruby-on-rails-3

我用了:

rails s 

run webrick on 0.0.0.0:3000
Run Code Online (Sandbox Code Playgroud)

但我无法从另一台PC访问Web应用程序.

我怎样才能在Rails 3中实现这一目标?

Nuc*_*ucc 14

默认绑定IP为0.0.0.0,因此问题可能是您的防火墙阻止该端口.尝试使用rails s -b IP_ADDRESS -p PORT以确保问题与防火墙有关.

顺便说一句.Linux,Osx,Windows?


小智 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
Run Code Online (Sandbox Code Playgroud)

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

rails s -b 192.168.0.50 -p 80
Run Code Online (Sandbox Code Playgroud)

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

rails s -h
Run Code Online (Sandbox Code Playgroud)

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

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

http://192.168.0.50:3000
Run Code Online (Sandbox Code Playgroud)

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

http://192.168.0.50
Run Code Online (Sandbox Code Playgroud)


Nuc*_*ucc 5

(对不起,我无法回复:()

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

对不起,但事实并非如此.这0.0.0.0意味着INADDR_ANY,所以它绑定到所有接口......