RabbitMQ接受连接,但在接受任何输入之前关闭连接

RabbitMQ接受连接,但在接受任何输入之前关闭连接,rabbitmq,windows-subsystem-for-linux,Rabbitmq,Windows Subsystem For Linux,所以我刚刚安装了rabbitmq的最新版本,我一直在努力让它正常工作。服务器正在运行,我已经重新启动了一次,只是为了确保这是一个一致的问题 如果我telnet localhost 5672,我会 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connection closed by foreign host. 如您所见,连接已被接受,但rabbitmq不接受任何输入。连接立即关闭。日志中没有显示更多信

所以我刚刚安装了rabbitmq的最新版本,我一直在努力让它正常工作。服务器正在运行,我已经重新启动了一次,只是为了确保这是一个一致的问题

如果我
telnet localhost 5672
,我会

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
如您所见,连接已被接受,但rabbitmq不接受任何输入。连接立即关闭。日志中没有显示更多信息

rabbitmqctl
工作正常


这是在Linux/Ubuntu的Windows子系统上运行的。对于本地开发环境,我没有任何其他选择,因为我在一台工作计算机上,这台计算机被紧紧锁定。

Telnet允许您确认系统正在侦听并允许传入连接。 但即使是RabbitMQ的“开箱即用”安装也需要连接的凭据

rabbitmqctl列出用户
,查看配置了哪些用户

如果客人在场,典型的信誉是客人/客人

安装管理插件(或确认已安装),
或者编写测试脚本,大多数语言都有一个包可用于连接RabbitMQ。

我遇到了同样的问题,在Windows和RabbitMQ 3.7.8上使用Ubuntu(16.04)作为子系统。我注意到,当运行
sudo rabbitmqctl status
时,侦听器显示以下内容:

{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]}
我通过创建rabbitmq配置文件并指定localhost和端口5762修复了此问题

这是我一步一步做的

  • 使用sudo&&vim,我创建了一个“rabbitmq.conf”文件,位于 /etc/rabbitmq/

    sudo vim /etc/rabbimq/rabbitmq.conf
    
  • 我为默认设置指定了localhost(127.0.0.1)和端口(5672) rabbitmq.conf文件中的tcp侦听器

    listeners.tcp.default = 127.0.0.1:5672
    
  • 重新启动rabbitmq

    sudo服务rabbitmq服务器停止

    然后

    sudo服务rabbitmq服务器启动

  • 检查
    sudo rabbitmqctl status
    并查看侦听器,您应该会看到指定了localhost ip的新tcp侦听器

    {listeners,[{clustering,25672,“::”},{amqp,5672,127.0.0.1}]}


  • 以下是rabbitmq提供的示例,可能有助于澄清其中一些步骤。

    我理解这一点。事实上,Telnet只是建立TCP连接,rabbitmq会立即关闭该连接,因此甚至没有时间进行身份验证。Telnet命令正在尝试使用rabbitmq不支持的Telnet协议连接到rabbitmq。因此,无法通过此工具正确测试连接。如果您需要测试连接,请查看一个python库,并通过该库从python进行测试。