此问题在堆栈溢出之前已被问过几次,我已经尝试了各种建议,但仍无法使其正常工作。
我在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
我每次都得到同样的错误:无法分配请求的地址 - 绑定(2)76.14.66.137:80(Errno :: EADDRNOTAVAIL)
我是否需要更改OSX设置?我做错了什么?
答案 0 :(得分:2)
0.0.0.0
表示监听所有网络接口。
https://www.whatismyip.com/为您提供路由器的外部IP。这不是用于使用单独的本地计算机连接到本地服务器的IP。您需要获取机器的真实内部IP地址。 (在OSX上这很简单,只需打开网络首选项,你的内部IP就会列在“状态:已连接”的顶部。你也可以通过登录你的路由器管理来找到IP。)假设运行rails服务器的你的机器有内部IP为191.166.0.100。
因此,您将在机器A上使用0.0.0.0 ip地址启动本地服务器。然后在机器B上,您将连接到http://191.166.0.100:3000 ..机器A的内部IP。然后你会得到你的rails应用程序的响应。如果没有,那么您需要检查服务器防火墙设置和路由器设置。