Какие порты используют RabbitMQ?

Какие порты используют сервер RabbitMQ или должны быть открыты на брандмауэре для кластера узлов?

Мой /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?

Ответ 1

PORT 4369: Erlang использует демона Port Mapper (epmd) для разрешения имен node в кластере. Узлы должны иметь возможность достигать друг друга, а демон карт-карт для кластеризации работать.

ПОРТ 35197 установленный inet_dist_listen_min/max. Брандмауэры должны разрешать трафик в этом диапазоне между кластерными узлами

Консоль управления RabbitMQ:

  • PORT 15672 для версии 4.x RabbitMQ
  • PORT 55672 для RabbitMQ pre 3.x

PORT 5672 Основной порт RabbitMQ.

Для кластера узлов они должны быть открыты друг к другу на 35197, 4369 и 5672.

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

Ответ 2

В каких портах используется RabbitMQ?

По умолчанию: 5672, в руководстве есть ответ. Он определен в переменной RABBITMQ_NODE_PORT.

https://www.rabbitmq.com/configure.html#define-environment-variables

Число может отличаться, если кто-то изменит конфигурационный файл rabbitmq:

vi /etc/rabbitmq/rabbitmq-env.conf

Попросите компьютер рассказать вам:

sudo nmap -p 1-65535 localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:50 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00041s latency).
PORT      STATE         SERVICE
443/tcp   open          https
5672/tcp  open          amqp
15672/tcp open  unknown
35102/tcp open  unknown
59440/tcp open  unknown

Oh look, 5672 и 15672

Использовать netstat:

netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:55672               0.0.0.0:*                   LISTEN
tcp        0      0 :::5672                     :::*                        LISTEN

О посмотри 5672.

использовать lsof:

[email protected] ~$ sudo lsof -i | grep beam
beam.smp  21216    rabbitmq   17u  IPv4 33148214      0t0  TCP *:55672 (LISTEN)
beam.smp  21216    rabbitmq   18u  IPv4 33148219      0t0  TCP *:15672 (LISTEN)

используйте nmap с другой машины, узнайте, открыт ли 5672:

sudo nmap -p 5672 10.0.1.71
Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:19 EDT
Nmap scan report for 10.0.1.71
Host is up (0.00011s latency).
PORT     STATE SERVICE
5672/tcp open  amqp
MAC Address: 0A:40:0E:8C:75:6C (Unknown)    
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

Попробуйте подключиться к порту вручную с помощью telnet, 5671 ЗАКРЫТО:

telnet localhost 5671
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

Попробуйте подключиться к порту вручную с помощью telnet, 5672 ОТКРЫТ:

telnet localhost 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Проверьте свой брандмауэр:

sudo cat /etc/sysconfig/iptables  

Он должен сказать вам, какие порты открыты:

-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT

Повторно применить ваш брандмауэр:

sudo service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

Ответ 3

Чтобы узнать, какие порты rabbitmq использует:

$ epmd -names

Выходы:

epmd: up and running on port 4369 with data:
name rabbit at port 25672

Запустите их как root:

lsof -i :4369
lsof -i :25672

Подробнее о параметрах epmd.

Ответ 4

Доступ к портам

Брандмауэры и другие инструменты безопасности могут препятствовать привязке 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-over-WebSockets (только если включен плагин Web STOMP)

15675: клиенты MQTT-over-WebSockets (только если включен плагин Web MQTT)

Справочный документ: https://www.rabbitmq.com/install-windows-manual.html