Mac Sierra无Web共享功能,如何实现本地Rails应用(3000端口)对外访问?
解决Mac Sierra下Rails应用无法被同网络设备访问的问题
别着急,这个问题其实是两个常见细节导致的,咱们一步步来搞定:
1. 让Rails监听所有网络接口
默认情况下,Rails启动时只会绑定localhost(也就是127.0.0.1),这就只有本机能访问。咱们需要让它监听所有可用的网络接口,这样同局域网的设备才能通过你的Mac局域网IP(10.55.18.22)访问。
启动Rails的时候,换成这个命令:
rails s -b 0.0.0.0
这里的-b 0.0.0.0就是告诉Rails绑定到所有网络接口,而不是只限于本机回环地址。
2. 配置Mac Sierra防火墙允许入站连接
Mac Sierra的防火墙可能会阻止外部设备访问3000端口,咱们按以下步骤调整:
- 打开「系统偏好设置」→「安全性与隐私」→切换到「防火墙」标签页
- 如果左下角的锁是灰色的,点击它并输入你的Mac密码解锁设置
- 点击「防火墙选项」,在弹出的窗口里:
- 检查是否有
ruby或者rails相关进程被标记为「阻止连接」,如果有,改成「允许连接」 - 或者点击左下角的「+」,找到Rails的可执行文件(通常在
/usr/local/bin/rails或你的Ruby版本管理目录下),添加后设置为允许连接 - 要是想快速测试,也可以暂时关闭防火墙(点击「关闭防火墙」),确认能访问后再回来配置具体规则
- 检查是否有
最后验证
启动Rails之后,在同网络的其他设备上打开浏览器,输入http://10.55.18.22:3000,应该就能正常访问你的Rails应用啦。如果还是不行,确认一下其他设备和你的Mac在同一个局域网(比如IP段都是10.55.x.x),没有被路由器的隔离规则限制。
内容的提问来源于stack exchange,提问作者santhosh kumar
相关产品推荐
相关产品推荐

