由于身份验证错误,无法从网络上的其他客户端访问RabbitMQ服务器

问题描述 投票:1回答:2

我已在Ubuntu 14.04上安装RabbitMQ,但无法从网络上的其他计算机连接到RabbitMQ服务器。

从安装RabbitMQ的计算机(仅从网络上的其他计算机)连接到服务器没有问题。

该页面指出“默认情况下,RabbitMQ将在所有可用接口上侦听端口5672”。

当尝试使用python中的pika从另一台服务器连接时,出现以下错误:

ERROR:pika.adapters.base_connection:Socket Error: 104
ERROR:pika.adapters.base_connection:Socket closed while authenticating indicating a probable authentication error

我添加了一个具有set_permissions newuser ".*" ".*" ".*"权限的新用户,并尝试了URI身份验证方法,但是仍然收到相同的错误。

我也无法从网络上的其他计算机连接到RabbitMQ管理,但可以在本地PC上访问它。

另外,通过检查打开的端口,我可以看到以下内容:

tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      1122/beam.smp   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1122/beam.smp   
tcp6       0      0 :::5672                 :::*                    LISTEN      1122/beam.smp   

我正在使用RabbitMQ教程中的python代码:

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='AAA.AAA.AAA.AAA'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',routing_key='hello',body='Hello World!')

print(" [x] Sent 'Hello World!'")

connection.close()

我想念什么?

rabbitmq pika rabbitmqctl python-pika
2个回答
3
投票

有问题的代码未提供用户名或密码。 您可能需要更新连接参数以包括这些参数


credentials = pika.PlainCredentials('guest', 'guest')

parameters = pika.ConnectionParameters('rabbit-server1', 5672, '/', credentials)

connection = pika.BlockingConnection(params)

检查文档中是否有pika,以获取更多信息: http : //pika.readthedocs.org/en/0.10.0/modules/parameters.html?highlight=connectionParameters

另外,请检查以确保您具有有效的用户名和密码。 您的服务器上可能未启用“访客”用户名/密码


2
投票

默认情况下,RabbitMQ仅接受来自localhost的guest用户的连接。 有关访问控制文档对此进行了说明

要允许guest用户从远程主机进行连接,您需要更改loopback_users配置参数(通常在Unix上的/etc/rabbitmq/rabbitmq.config中):

[
  {rabbit, [
    {loopback_users, []}
  ]}
].

您可以在配置文档中阅读有关此参数的更多信息。

也就是说,请注意:默认情况下创建的该用户使用一个弱密码已知,具有管理员权限。 因此,必须仅在受信任的网络上更改此配置参数。

© www.soinside.com 2019 - 2024. All rights reserved.