遇到的错误是: dial tcp [::1]:3000: getsockopt: connection denied

Posted

技术标签:

【中文标题】遇到的错误是: dial tcp [::1]:3000: getsockopt: connection denied【英文标题】:The error encountered was: dial tcp [::1]:3000: getsockopt: connection refused 【发布时间】:2019-08-12 22:51:38 【问题描述】:

我正在努力让 webhook 登陆 rails 应用程序。我的 Rails 服务器运行,我已经连接到 ngrok 和外部应用程序。但是指出我的应用程序没有运行的错误。

localhost:3000 运行,我可以获取到 ngrok 的 webhook。怎么了?


与http://9xxxxxx5.ngrok.io 的连接已成功通过隧道连接到您的 ngrok 客户端,但客户端未能建立与本地地址 localhost:3000 的连接。

确保 web 服务正在 localhost:3000 上运行并且它是一个有效的地址。

遇到的错误是:dial tcp [::1]:3000: getsockopt: connection denied


看到 localhost:3000 后,rails 应用程序运行。为什么无法连接......

这是ps aux | grep ruby的结果。

user               63542   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/assets
user               63541   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/channels
user               63540   0.0  0.0  4298800     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/test/mailers/previews
user               63539   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.04 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/uploaders
user               63538   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/services
user               63537   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/models
user               63536   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/mailers
user               63535   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/jobs
user               63534   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/helpers
user               63533   0.0  0.0  4306992     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/controllers
user               63532   0.0  0.0  4298800     40 s000  S+    7:00PM   0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/db
user               63531   0.0  0.0  4298800     40 s000  S+    7:00PM   0:00.06 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/config/locales
user               64927   0.0  0.0  4258736    192 s002  R+    7:42PM   0:00.00 grep ruby

更新

我试图杀死最后一个。但我不能,因为进程号每次都是随机的,如下所示:

我仍然无法连接 ngrok ....

【问题讨论】:

您可以在本地终端中发布您的 rails 服务器的完整回溯错误吗? 感谢您的评论。但是我在rails服务器中找不到任何错误,因为没有将ngrok与rails连接可能会发生此错误。 click localhost:3000 是什么意思? 在终端中输入此内容并将您的输出粘贴到您的问题中。 ps aux | grep ruby @lacostenycoder 非常感谢。我已经在问题中添加了结果。 【参考方案1】:

感谢@lascostenycoder

我很惊讶我能在sudo vi /etc/hosts 之后解决这个问题。 我用 MAMP 为其他项目编辑过。所以我做不到。

感谢您的帮助:)

【讨论】:

我昨天真的想到了这个,但不知道为什么我不建议检查一下。我更新了我的答案,因为我也应该提到这一点。【参考方案2】:

你需要在你的ngrok命令中添加端口,rails默认本地开发是3000

ngrok http 3000

然后你应该可以在浏览器中输入你的 ngrok 地址

http://xxxxxx.ngrok.io/

我能够重现您的错误的唯一方法是停止我的 rails 服务器,然后当我尝试打开 ngrok url 时,我得到了您的错误。所以这意味着要么你的服务器没有运行,要么 ngrok 无法连接到它。

更新 2

确保您在 /etc/hosts 中没有发生任何可能导致问题的事情。

更新

确保您没有运行任何恶意 ruby​​ 进程。根据您更新的评论,运行此以杀死他们所有

ps aux | grep ruby | awk 'print $2' |  xargs kill -9

或者试试看是不是spring的问题:

spring status
spring stop

然后检查并确保所有内容都已被杀死,然后从第 1 步重新开始。

ps aux | grep ruby

这可能是特定于您的应用程序/配置的东西?因此,请尝试杀死所有正在运行的 Rails 服务器,如果不确定,请重新启动机器。然后转到一个新的项目文件夹,只需添加一个新的 rails 应用程序,一旦它运行,再次尝试 ngrok 并查看它是否有效。还要确保在 ngrok 命令中使用 http 和 https。

【讨论】:

感谢您的评论。我运行ngrok http 3000,然后检查了终端中显示的xxxx.ngrok.io。但这行不通。 @k10a 在您运行 ngrok 之前,您的 Rails 服务器是否在另一个终端中运行?当然xxxx 是假的,每次运行新的ngrok 时都会得到一个新的随机哈希前缀 是的,我在 ngrok 之前启动了 rails 服务器,然后我从 xxxx 替换为自己的 ngrok url。 @k10a 你是如何启动 Rails 服务器的? 感谢您的帮助。在终端,$ rails s 照常。

以上是关于遇到的错误是: dial tcp [::1]:3000: getsockopt: connection denied的主要内容,如果未能解决你的问题,请参考以下文章

golang 在下载依赖包的时候出现错误:dial tcp 142.251.42.241:443: i/o timeout

golang 在下载依赖包的时候出现错误:dial tcp 142.251.42.241:443: i/o timeout

如何处理错误“dial tcp 10.240.0.4:10250: i/o timeout”以查看 AKS 中的 pod 日志?

Error: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:4001: get

dial tcp: lookup xxx.xxx.xxx.xxx: no such host

docker拉取镜像时报错:docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp: