Какие порты использует или должен открыть RabbitMQ Server на межсетевом экране для кластера узлов?
Мой /usr/lib/rabbitmq/bin/rabbitmq-env
установлен ниже, который, я полагаю, необходим (35197).
SERVER_ERL_ARGS="+K true +A30 +P 1048576 \
-kernel inet_default_connect_options [{nodelay,true}] \
-kernel inet_dist_listen_min 35197 \
-kernel inet_dist_listen_max 35197"
Я не коснулся, rabbitmq.config
чтобы установить пользовательский, tcp_listener
поэтому он должен слушать по умолчанию 5672.
Вот соответствующие строки netstat:
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 728/epmd
tcp 0 0 0.0.0.0:35197 0.0.0.0:* LISTEN 5126/beam
tcp6 0 0 :::5672 :::* LISTEN 5126/beam
Мои вопросы:
для того чтобы другие узлы могли подключаться к кластеру, должны ли быть открыты все 3 порта 4369, 5672 и 35197?
Почему 5672 не работает на tcp, а не только на tcp6?
Ответы:
ПОРТ 4369: Эрланг использует демон сопоставления портов (epmd) для разрешения имен узлов в кластере. Узлы должны иметь доступ к друг другу и демону сопоставления портов, чтобы кластеризация работала.
ПОРТ 35197, установленный inet_dist_listen_min / max Брандмауэры должны разрешать трафик в этом диапазоне проходить между кластерными узлами
Консоль управления RabbitMQ:
PORT
5672
RabbitMQ основной порт.Для кластера узлов, они должны быть открыты друг с другом на
35197
,4369
и5672
.Для любых серверов, которые хотят использовать очередь сообщений,
5672
требуется только .источник
Какие порты использует RabbitMQ?
По умолчанию: 5672, в руководстве есть ответ. Это определено в
RABBITMQ_NODE_PORT
переменной.https://www.rabbitmq.com/configure.html#define-environment-variables
Номер может отличаться, если кто-то изменяет его в конфигурационном файле rabbitmq:
Попросите компьютер сказать вам:
О, смотри, 5672 и 15672
Используйте netstat:
О, смотри 5672.
используйте lsof:
используйте nmap с другого компьютера, узнайте, открыт ли 5672:
Попробуйте подключиться к порту вручную с помощью telnet, 5671 ЗАКРЫТО:
Попробуйте подключиться к порту вручную с помощью telnet, 5672 ОТКРЫТО:
Проверьте ваш брандмауэр:
Он должен сказать вам, какие порты открыты:
Повторно примените свой брандмауэр:
источник
Чтобы узнать, какие порты использует rabbitmq :
Выходы:
Запустите их как root:
Подробнее об опциях epmd.
источник
lsof
мучительно медленно ... и требует привилегий root. Вы можете сделать то же самое, намного быстрее, сnetstat -an | egrep '\.(4369|25672).*LISTEN'
Доступ к порту
Межсетевые экраны и другие средства безопасности могут препятствовать привязке RabbitMQ к порту. Когда это произойдет, RabbitMQ не запустится. Убедитесь, что следующие порты могут быть открыты:
4369: epmd, одноранговая служба обнаружения, используемая узлами RabbitMQ и инструментами CLI
5672, 5671: используется клиентами AMQP 0-9-1 и 1.0 без и с TLS
25672: используется распределением Erlang для связи между узлами и инструментами CLI и выделяется из динамического диапазона (по умолчанию ограничен одним портом, вычисляется как порт AMQP + 20000). См. Руководство по сети для деталей.
15672: клиенты HTTP API и rabbitmqadmin (только если включен плагин управления)
61613, 61614: клиенты STOMP без и с TLS (только если плагин STOMP включен)
1883, 8883: (MQTT-клиенты без и с TLS, если подключаемый модуль MQTT включен
15674: клиенты STOMP через WebSockets (только если плагин Web STOMP включен)
15675: клиенты MQTT-over-WebSockets (только если включен плагин Web MQTT)
Справочный документ: https://www.rabbitmq.com/install-windows-manual.html
источник