【问题标题】:how to connect to webrick from different computer如何从不同的计算机连接到 webrick
【发布时间】:2016-01-11 23:16:42
【问题描述】:

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

我使用的是 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 设置?我做错了什么?

【问题讨论】:

    标签: ruby-on-rails macos webrick


    【解决方案1】:

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

    https://www.whatismyip.com/ 为您提供路由器的外部 IP。这不是您用来通过单独的本地计算机连接到本地服务器的 IP。您需要获取机器的真实内部 IP 地址。 (在 OSX 上这很简单,只需打开 Network Preferences,您的内部 IP 就会在顶部的“状态:已连接”下列出。您还可以通过登录路由器管理找到 IP。)假设您运行 rails 服务器的机器有内部 IP 为 191.166.0.100。

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

    【讨论】:

    • 我使用 rails server -b 0.0.0.0 启动服务器,然后尝试用我在另一台计算机上的 ip 连接:76.14.66.137:3000。还是不行。我不知道什么防火墙设置和/或路由器设置会导致问题。有什么我特别应该寻找的东西,或者可以谷歌搜索吗?
    • 如果您尝试从互联网连接到 webrick,那么您需要在路由器中启用端口转发。您可以在 google 中找到如何使用“(路由器模型)端口转发”或“(路由器模型)从互联网访问 Intranet”等搜索查询
    • 感谢您的帮助,您最后的评论让我发现我使用的是我的公共路由器 IP,而不是我的计算机自己的内部 IP 来启动 webrick。我知道,这很愚蠢,只是表明当您对这些服务器/网络的东西一无所知时,很容易被这些东西绊倒。
    • 您在原始答案中基本上是这样说的,但我并不清楚。我尝试编辑您的答案以使其更加清晰,一旦发布编辑,我会接受它。
    • 希望编辑不会太广泛而无法接受
    猜你喜欢
    • 2012-03-25
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2013-01-16
    • 2022-01-11
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多