Откройте порт 5672/tcp для доступа к RabbitMQ на Mac

Откройте порт 5672/tcp для доступа к RabbitMQ на Mac

У меня на Mac установлена ​​последняя версия RabbitMQ с конфигурацией по умолчанию, и когда я обращаюсь к ней с локального хоста, никаких проблем не возникает. Но сегодня я создаю машину Linux в локальной сети и никак не могу подключиться к своему серверу RabbitMQ удаленно с этой машины. Я отключил все брандмауэры на Mac и все, что может блокировать соединение. Я прекрасно могу подключиться к MongoDB, работающей на другом порту, и к любому другому приложению, по ssh к моему MacBook и так далее, но я не могу подключиться к RabbitMQ (даже когда я меняю порт, на котором он работает). Когда я запускаю nmapLinux, чтобы проверить, открыт ли соответствующий порт на моем Mac, я получаю это:

>> nmap -p 5672 192.168.1.101 
Nmap scan report for 192.168.1.101
Host is up (0.00019s latency).
PORT     STATE  SERVICE
5672/tcp closed amqp

Но когда я делаю то же самое на своем Mac:

>> nmap -p 5672 localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00049s latency).
PORT     STATE SERVICE
5672/tcp open  amqp

Я добавил правило ipfwвручную и добавил rabbitmq-serverв system preferences -> security -> firewall -> advancedсписок приложений, чтобы разрешить все входящие соединения на всякий случай, но это не помогло. Есть идеи, как принудительно открыть порт для сетевого доступа с другого компьютера в локальной сети? Когда я делаю наоборот (устанавливаю rabbitmq на linux и подключаюсь к нему с mac), все работает нормально..

решение1

Когда я установил RabbitMQ на Mac OS X с помощью brew, у меня возникла та же проблема: порт 5672 был открыт только на localhost.

Оказалось, что файл /usr/local/etc/rabbitmq/rabbitmq-env.confсодержал запись для NODE_IP_ADDRESSпривязки только к localhost. Удаление NODE_IP_ADDRESSзаписи из конфига привязывает порт квсе сетевые интерфейсы.

решение2

Похоже, что демон привязывается к 127.0.0.1 вместо 0.0.0.0, вы можете проверить это с помощью инструмента netstat.

решение3

Мне помогло сочетание обоих предыдущих ответов.

Сделайте свой /usr/local/etc/rabbitmq/rabbitmq-env.confобраз таким:

#rabbitmq-env.conf
CONFIG_FILE=/usr/local/etc/rabbitmq/rabbitmq
NODE_IP_ADDRESS=0.0.0.0
NODENAME=rabbit@localhost

Если я NODE_IP_ADDRESSполностью удаляю запись, rabbitmq выдает мне ошибки.

решение4

какой аккаунт вы используете для подключения к RabbitMQ. Если вы используете гостевой аккаунт. Это может помочь

https://www.rabbitmq.com/access-control.html

Связанный контент