SSH、RabbitMQ、协议“inet_tcp”:注册/监听错误:econnrefused

Posted

技术标签:

【中文标题】SSH、RabbitMQ、协议“inet_tcp”:注册/监听错误:econnrefused【英文标题】:SSH, RabbitMQ, Protocol 'inet_tcp': register/listen error: econnrefused 【发布时间】:2019-01-08 00:57:48 【问题描述】:

当我尝试在我的服务器机器上运行命令时

./rabbitmq-server

我得到以下信息:

WARNING: Removing trailing slash from RABBITMQ_LOG_BASE
         Removing trailing slash from RABBITMQ_MNESIA_BASE
Protocol 'inet_tcp': register/listen error: econnrefused

背景故事: 这是我第一次尝试仅使用 ssh 安装 RabbitMQ-Server。

到目前为止我所做的一步一步是:

    wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.6.15.zip 解压rabbitmq-server-3.6.15.zip nano Makefile # 将主目录中的前缀改为 rabbitMQ PREFIX ?= /home/user/rabbitmq gmake gmake 安装 cd ~/rabbitmq/lib/erlang/lib/rabbitmq_server-3.6.15/sbin/ 导出 RABBITMQ_MNESIA_BASE=/home/user/rabbitmq/lib/erlang/lib/rabbitmq_server-3.6.15/sbin/ 导出 RABBITMQ_LOG_BASE=/home/user/rabbitmq/ ./rabbitmq-server

这里出现了错误。有人告诉我,也许“解锁”端口可以解决问题,但是

我不知道该怎么做 不知道是不是这样

【问题讨论】:

您为什么不为您的操作系统使用最新的预打包版本?如果这不是一个选项,请使用 generic-unix 包。自己编译 RabbitMQ 应该没有必要,只会引起你所看到的头痛。最后,您使用的是什么 Erlang 版本? 从下面Legoscia发布的内容来看,似乎不是RabbitMQ的失败,而是epmd。我的版本是 19 @LukeBakken IME,编译 Erlang 应用程序/项目完全没问题(而且看起来很常见)。 RabbitMQ 是不是特别难编译? 【参考方案1】:

错误Protocol 'inet_tcp': register/listen error: econnrefused表示Erlang节点试图连接到epmd(Erlang端口映射器守护进程)注册它的名字,但是连接失败。

这不应该发生:应该在 Erlang 节点启动时启动 epmd。您可以尝试在 shell 中手动运行epmd,看看它是否报告任何错误。


如果它显示failed to bind socket: Operation not permitted,请检查是否有其他东西正在使用端口 4369(这是 epmd 尝试侦听的端口)。

【讨论】:

你好,运行 epmd 给我错误 [user@xxx]:$ epmd epmd: Wed Aug 1 11:51:19 2018: failed to bind socket: Operation not allowed 对,这就是问题的根源。不知道为什么它没有权限监听端口。它正在使用端口 4369,这不是特权端口... 我不知道究竟是为什么,但似乎我的 4369 端口,即使未在 netstat 中列出,也被某些东西使用/阻止了。释放这个端口解决了这个问题,所以这是正确的答案。非常感谢。 我知道我迟到了,但尝试杀死杀毒软件,对我来说这是 AVG 阻塞了端口

以上是关于SSH、RabbitMQ、协议“inet_tcp”:注册/监听错误:econnrefused的主要内容,如果未能解决你的问题,请参考以下文章

epmd 错误打开流套接字:协议不支持地址族

尝试运行 Rabbitmq 时连接被拒绝

杂项之rabbitmq

RabbitMQ AMQP (高级消息队列协议)

RabbitMQ与AMQP协议

RabbitMQ