У меня на Mac установлена последняя версия RabbitMQ с конфигурацией по умолчанию, и когда я обращаюсь к ней с локального хоста, никаких проблем не возникает. Но сегодня я создаю машину Linux в локальной сети и никак не могу подключиться к своему серверу RabbitMQ удаленно с этой машины. Я отключил все брандмауэры на Mac и все, что может блокировать соединение. Я прекрасно могу подключиться к MongoDB, работающей на другом порту, и к любому другому приложению, по ssh к моему MacBook и так далее, но я не могу подключиться к RabbitMQ (даже когда я меняю порт, на котором он работает). Когда я запускаю nmap
Linux, чтобы проверить, открыт ли соответствующий порт на моем 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. Если вы используете гостевой аккаунт. Это может помочь