Невозможно получить доступ к серверу RabbitMQ с других клиентов в сети из-за ошибки аутентификации

Я установил RabbitMQ в Ubuntu 14.04 и не могу подключиться к серверу RabbitMQ с других компьютеров в сети.

Нет проблем с подключением к серверу с компьютера, на котором установлен RabbitMQ, только с других компьютеров в сети.

На этой странице указано, что "по умолчанию RabbitMQ будет прослушивать порт 5672 на всех доступных интерфейсах".

При попытке подключиться с другого сервера, использующего pika в python, я получаю следующую ошибку:

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 с других компьютеров в сети, но могу получить к нему доступ на локальном компьютере.

Также, проверяя открытые порты, я вижу следующее:

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   

Я использую код Python из учебных пособий RabbitMQ:

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()

Что мне не хватает?

2 ответа

Решение

Данный код не предоставляет имя пользователя или пароль. Вероятно, вам потребуется обновить параметры подключения, чтобы включить эти


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

Кроме того, убедитесь, что у вас есть действительные имя пользователя и пароль. "Гость" имя пользователя / пароль не могут быть включены на вашем сервере

По умолчанию RabbitMQ принимает соединения для guest пользователь только с localhost. Это объясняется в документации по контролю доступа.

Разрешить соединения для guest пользователь с удаленных хостов, вам нужно изменить loopback_users параметр конфигурации (обычно в /etc/rabbitmq/rabbitmq.config в Unix):

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

Подробнее об этом параметре можно прочитать в документации по конфигурации.

Тем не менее, будьте осторожны: этот пользователь, созданный по умолчанию со слабым известным паролем, имеет права администратора. Таким образом, изменение этого параметра конфигурации должно выполняться только в доверенной сети.

Другие вопросы по тегам