将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?

Posted

技术标签:

【中文标题】将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?【英文标题】:What does binding a Rails Server to 0.0.0.0 buy you?将 Rails 服务器绑定到 0.0.0.0 能给你带来什么? 【发布时间】:2015-05-18 23:37:01 【问题描述】:

我使用“www.xip.io”作为 DNS 通配符,用于在不同设备上进行测试。我将我的主域设置为我的 IP 地址。我用bundle exec rails server 启动了一个rails 服务器,然后我去www.<ip_address>.xip.io:3000 并注意到我的rails 服务器没有响应。

但是,如果我像 bundle exec rails server -b 0.0.0.0 那样将我的 Rails 服务器绑定到 0.0.0.0,它就可以工作!我不明白 0.0.0.0 告诉我的服务器如何工作。有人能理解吗?

【问题讨论】:

【参考方案1】:

绑定到0.0.0.0 告诉服务绑定到您机器上的所有 IP 地址。 Rails 服务器过去默认执行此操作,但 4.2 更改为仅绑定到 localhost

基本上,如果它只绑定到localhost,那么它只会在本地响应localhost127.0.0.1,因为它不是公共IP 地址,因此无法通过DNS 服务工作。

当您使用0.0.0.0 时,它将绑定到本地主机到您的可路由 IP 地址。

【讨论】:

完美。感谢 4.2 掘金。 不客气,这对很多人来说是一个令人讨厌的(宣传不佳的)陷阱。 天哪,这让我快疯了。如果您尝试从 docker 容器运行 rails 并且未指定此选项,则无论您做什么,docker 容器都不会响应。这是救命稻草。【参考方案2】:

我认为您在来宾/虚拟机中的任何时候都需要使用绑定。

【讨论】:

以上是关于将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?的主要内容,如果未能解决你的问题,请参考以下文章

将 selenium 绑定到特定 IP - 可能吗?

将 Microsoft Azure Function App 2.0 预览版绑定到 0.0.0.0

如何将 `vue ui` 绑定到另一个 IP? (vue-cli 3)

启动 apache 失败(无法绑定到地址 0.0.0.0:80)

启动 apache 失败(无法绑定到地址 0.0.0.0:80)

Docker:(13)权限被拒绝:AH00072:make_sock:无法绑定到地址 0.0.0.0:80