【问题标题】:Error when testing app from mobile device - ERR_CONNECTION_REFUSED从移动设备测试应用程序时出错 - ERR_CONNECTION_REFUSED
【发布时间】:2015-03-18 21:41:11
【问题描述】:

升级到 OSX Yosemite 后,我无法再使用开发机器 (MacBook Pro) 的 IP 地址在移动设备上测试我的应用程序。例如,我以前可以通过转到http://192.168.0.4:3000 在手机上查看 Rails 应用程序,但现在我收到以下错误:

ERR_CONNECTION_REFUSED

我在使用运行在http://192.168.0.4:9000 的 grunt 服务器测试 AngularJS 应用程序时遇到同样的错误

任何帮助将不胜感激。

【问题讨论】:

  • 检查你的ip或防火墙,也许会有帮助
  • 刚刚在“系统偏好设置”>“安全与隐私”下检查了我的防火墙设置,它已关闭。 Mac 上可以默认安装另一个吗?谢谢。
  • 您是否重新安装了所有库?
  • 我已经重新安装了我所有的 node/npm 库,但没有重新安装我的 ruby​​ 库。但我使用 ruby​​ 服务器或节点一时收到相同的错误消息。
  • 正如亚历克斯所说,你检查过你的 IP 地址了吗?如果您的网络设置与大多数人一样,您可以通过 DHCP 分配您的网络,这意味着它可以更改。在终端中输入 ifconfig 并在 en0 或 en1 中查找“inet”条目。

标签: ruby-on-rails macos osx-yosemite


【解决方案1】:

这可能有助于将服务器绑定到您的本地 IP,例如

rails s -p9000 -b192.168.0.4

启动您的 Rails 应用程序

【讨论】:

  • 这为我解决了这个问题。我有同样的问题,除了我使用的是 3000 端口,所以对我来说它只是 rails s -bMY LAN IP。
【解决方案2】:

考虑尝试Pow。它的安装非常简单,是跨多个设备共享本地开发的绝佳解决方案。

就像它在他们的主页上解释的那样,你可以安装它: curl get.pow.cx | sh。为防止出现任何错误,请在 Tmux 会话之外的终端应用中安装。

只需符号链接您的应用:

 cd ~/.pow
 ln -s /path/to/myapp

您可以通过http://myapp.dev/http://myapp.[your ip address].xip.io 从其他设备访问您的应用。

不是对您的问题的直接回应,而是在您的偏好中设置自己的配置的替代方法。

【讨论】:

  • 感谢您的建议。我与 yeoman、bower 和 grunt 分别开发我的 AngularJS 前端。这些工具使用基于节点的 Web 服务器,所以我认为这不会解决我的问题。
【解决方案3】:

关闭 IPv6。它阻止我从局域网上的其他计算机连接到我的本地主机。而且,对于较新版本的 OSX,无法在“网络偏好设置”面板中将其关闭,因此您必须从终端进行。

打开终端并输入将其关闭:

networksetup -setv6off Wi-Fi

然后将其重新打开:

networksetup -setv6LinkLocal Wi-Fi

如果您通过以太网或其他方式连接,只需运行此命令以列出可用选项:

networksetup -listallnetworkservices

并将“Wi-Fi”替换为适当的设备。

【讨论】:

  • 我正在使用 Wi-Fi,我运行了该命令。即使重新启动,我仍然遇到同样的错误。
  • 这是唯一对我有用的解决方案,使用 Yosemite + 从 Android 手机访问 Rails Web 应用程序。这是我见过的唯一建议的地方。
【解决方案4】:

我没有mac,但那似乎是服务器不接受连接,如果是这种情况,它只接受localhost连接,尝试绑定de服务器接受所有连接或将其绑定到0.0.0.0 ip

【讨论】:

  • 你的服务器上大部分都有一个配置,比如webrick的-b标志,你使用的是哪个服务器?
  • 我同时使用 webrick 和 grunt-serve。尝试命中任一错误消息。
  • 你可以开始 webrick 发出rails server -b 0.0.0.0 来监听所有传入的请求
  • 这是唯一对我有用的答案。 rails server -b 0.0.0.0 现在允许我使用移动设备进行测试
【解决方案5】:

您可以从浏览器访问该 IP 吗?你确定你的IP和192.168.0.4在同一个范围内吗?您的移动设备是否连接在同一网络上?也许您在更新到优胜美地之前使用了互联网共享,现在已经关闭了?

【讨论】:

  • 不,我只能在浏览器中使用localhost:3000 运行该应用程序。如果我尝试192.168.0.4:3000,它不起作用。即使来自同一台机器。
【解决方案6】:

我认为您的 IP 地址已更改。从控制台(终端)远程登录您的 IP。港口。如果 192.168.0.4 是您的真实 IP,那么可以在 /etc/host 文件中添加(作为 root 或通过 sudo)一个条目作为 127.0.0.1 192.168.0.4 的条目。重启网络或重启。您也可以尝试 nmap (在 ip 上查看开放端口)。 Nmap 已被移植到 OSX,只是 google 安装程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多