如何从不同的计算机连接到 webrick

how to connect to webrick from different computer

这个问题在堆栈溢出之前已经被问过几次了,我已经尝试了各种建议,但仍然无法正常工作。

我在 OSX 10.11,家庭 wifi 网络,使用 Chrome。如果我使用以下命令启动 webrick:

rails server -b 0.0.0.0

服务器启动,我可以在同一台计算机上通过 http://0.0.0.0:3000/ 访问我的应用程序,但从另一台计算机(也是同一 wifi 网络上的最新 OSX)我得到一个 ERR_CONNECTION_REFUSED.

whatismyip.com 说我的 IP 是 76.14.66.137。当我尝试以下任何一项时

rails s -b 76.14.66.137
rails s -b 76.14.66.137 -p 80
rails s -b 76.14.66.137 -p 3000
rails s -b 76.14.66.137 -p 3002

我每次都遇到同样的错误:无法分配请求的地址 - bind(2) for 76.14.66.137:80 (Errno::EADDRNOTAVAIL)

是否有我可能需要更改的 OSX 设置?我做错了什么?

0.0.0.0表示监听所有网络接口。

https://www.whatismyip.com/ 为您提供路由器的外部 IP。这不是您用于通过单独的本地计算机连接到本地服务器的 IP。您需要获取机器的真实内部 IP 地址。 (在 OSX 这很容易,只需打开网络首选项,您的内部 IP 列在顶部 "Status: Connected" 下。您也可以通过登录路由器管理找到 IP。)假设您的机器 运行 rails 服务器的内部 IP 为 191.166.0.100。

因此您将在机器 A 上使用 0.0.0.0 ip 地址启动本地服务器。然后在机器 B 上您将连接到 http://191.166.0.100:3000.. 机器 A 的内部 IP。然后你会从你的 rails 应用程序得到响应。如果没有,那么您需要检查服务器防火墙设置和路由器设置。