无法连接到家庭网络上的 WEBrick

无法连接到家庭网络上的 WEBrick

我是一名 Android 开发人员,我的应用程序经常需要服务器端代码。我通常使用 Ruby on Rails 编写 Web 应用程序,在开发过程中,我会使用 WEBrick 在本地计算机 (Mac OS X) 上运行服务器。早上到办公室时,我会在控制台中运行 ifconfig 以查看我的笔记本电脑当天分配了哪个 IP。在向相关 Web 应用程序发出请求时,我会在我的 Android 应用程序中使用该 IP。

当我在办公室时,一切都运行正常。

回到家后,我尝试做同样的事情,通过 ifconfig 找到我的笔记本电脑的 IP,将其设置在应用程序的配置文件中,但始终找不到目的地。为了将我的应用程序排除在障碍之外,我尝试访问 Web 服务器 IP(例如,http://192.168.1.4:3000),但无法连接。如果我尝试从运行 Web 服务器的笔记本电脑上进行连接,则一切正常。如果我从同一网络上的另一台机器上进行连接,同样无法连接。

鉴于此,我认为我已经将问题缩小到我家庭网络中的某种配置,但坦率地说,我不知道原因可能是什么。我家里没有什么特别的东西,你基本的 Verizon FiOS 路由器/调制解调器,所有东西都通过 Wi-Fi 连接(工作时手机和笔记本电脑也使用 Wi-Fi,仅供参考)。我尝试禁用 Verizon 路由器上的防火墙,启用端口转发,以及我可以对端口 3000 执行的几乎所有其他操作,但什么都没有改变。

亲爱的 Server Fault 天才们,请帮助一位可怜的开发人员。:)

编辑:

一些后续事项需要添加。我的 Mac 防火墙未启用,所有传入请求均被允许。我还在手机和笔记本电脑上验证了它们位于同一网络上(192.168.1.4 Mac,192.168.1.9 手机)。我有不知道为什么这不起作用。

编辑2:

我进入“系统偏好设置”,启用了“Web 共享”,并尝试通过手机查看网站,但无法连接。所以这不是 WEBrick 或与 Rails 有关的问题。我机器上的防火墙已关闭,路由器上的防火墙也已关闭。

编辑3:

有一些进展。我为笔记本电脑设置了端口 3000 的端口转发,找到了外部 IP,然后使用它,连接正常。所以,我的内部网络肯定有些设置不正确。

答案1

您是否尝试过像这样运行 WEBrick rails s -p 80 来强制使用端口 80。如果您的路由器有问题,尝试其他端口可能会有所帮助。

我建议直接插入电脑并从直接插入的电脑访问它。您的路由器可能是那些有两个网络的奇怪路由器之一;主无线网络和访客无线网络。即使您的所有设备都连接到同一个物理路由器,您也处于彼此分离的不同网络上。我会检查笔记本电脑上的无线设置,确保不是这种情况。

答案2

某些路由器具有禁用无线客户端之间通信的选项。检查路由器的无线设置,看看是否启用了此选项。它可能被称为“隔离”模式或类似名称。如果您可以提供路由器的实际制造商/型号,则可能可以查阅文档并帮助查看路由器上是否有这样的选项。

如果你的手机和笔记本电脑两个都192.168.1.4作为他们的 IP 地址(如你所述),那么他们不是在同一个网络上(或严重配置错误而无法访问互联网)。

答案3

我知道在某些 Windows 7 机器上,您有不同的网络(公共、家庭、工作)。您可能在家中将机器连接为公共网络,这可能导致它不显示网站。但是在您的办公室,连接设置为工作或家庭,从而打开了 Webrick。我会尝试禁用您与家庭的连接并忘记该连接。尝试建立一个新的连接并将其设置为家庭。

在网络下,根据您当前选择的网络位置,单击家庭网络、工作网络或公共网络链接。(见下面的屏幕截图) 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

答案4

您必须运行 WebBrick 并选择绑定到 IP 0.0.0.0 才能允许来自任何地方的连接。否则它只会绑定到 127.0.0.1 并只接受来自本地主机的连接。

rails server -b 0.0.0.0


rails server --help
    -b, --binding=IP                 Binds Rails to the specified IP.
                                     Default: localhost

来源:Rails 开发人员

相关内容