遇到的错误是: 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: