从 Genymotion (Virtualbox) 连接到本地主机

Connecting to localhost from Genymotion (Virtualbox)

这个问题已被问及多次回答,但 none 个答案对我有用。

几天前,如果我没记错的话,我的 nativescript 应用程序(在 Genymotion 设备中模拟)可以完美地连接到我的本地 rails 服务器(localhost:300010.0.3.2:3000/v1/ 在 Genymotion 中。

今天我试图让它再次工作无济于事:(

详情:

我试过了:

"http://10.0.2.2", "http://10.0.2.2:3000", "http://10.0.3.2", "http://10.0.3.2:3000", "http://10.0.3.2:8080", "http://10.0.3.3", "http://10.0.3.3:3000", "http://192.168.56.1:3000", "http://192.168.56.1"

当我尝试获取这些 IP 时得到的是 TypeError: Network request failed

如果我尝试获取类似 google.com 的内容,我会收到响应,所以我猜想是虚拟盒网络模式错误或者我的 Mac 有一些我不知道的防火墙

编辑

我应该早点提到它,但我忘记了。我的机器上有 nginx 运行 用于其他一些项目

如果 nginx 关闭,我会收到 TypeError: Network request failed for all the IPs

如果我打开 nginx,我会从中得到 502 Bad gateway 以下 IP:

"http://10.0.3.2", "http://10.0.3.3", "http://10.0.3.2:8080", "http://192.168.56.1:8080", "http://192.168.56.1"

我的 rails 服务器 运行 在端口 3000 上,但没有收到任何请求。请注意,我也尝试在 3000 000 端口点击以上所有内容,无论是打开还是关闭 nginx。

编辑 2

固定

我的整个问题都来自我的 PUMA 服务器,由于新版本中的一些更改,它不再监听 0.0.0.0(所有接口),而是监听 localhost 和 127.0.0.1。这就是为什么主机上的 localhost 可以工作而来自 virtualbox (Geny.) 的原因

TL;DR;

如果您正在使用 Puma 服务器并且无法从其他机器连接到您的本地主机,请使用以下命令启动您的 rails 服务器:

rails server -b 0.0.0.0

我的整个问题都来自我的 PUMA 服务器,由于新版本中的一些更改,它不再监听 0.0.0.0(所有接口),而是监听 localhost 和 127.0.0.1。这就是为什么主机上的 localhost 可以工作而来自 virtualbox (Geny.) 的原因

TL;DR;

如果您使用的是 Puma 服务器并且无法从其他机器连接到您的本地主机,请使用以下命令启动您的 rails 服务器:

rails 服务器-b 0.0.0.0