web-dev-qa-db-fra.com

Quels ports RabbitMQ utilise-t-il?

Quels ports RabbitMQ Server utilise-t-il ou a-t-il besoin d'ouvrir sur le pare-feu pour un cluster de nœuds?

Mon /usr/lib/rabbitmq/bin/rabbitmq-env est défini en dessous duquel je suppose qu'il est nécessaire (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"

Je n'ai pas touché le rabbitmq.config pour définir un tcp_listener personnalisé. Il doit donc être en écoute sur le 5672 par défaut.

Voici les lignes pertinentes de 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

Mes questions sont:

  1. pour que les autres nœuds puissent se connecter au cluster, les 3 ports 4369, 5672 et 35197 doivent-ils tous être ouverts?

  2. Pourquoi 5672 ne fonctionne-t-il pas sur tcp et pas seulement tcp6?

122
bluemalkin

PORT 4369: Erlang utilise un démon de mappeur de port (epmd) pour la résolution des noms de nœud dans un cluster. Les nœuds doivent pouvoir se joindre et le démon de mappeur de port pour que la mise en cluster fonctionne.

PORT 35197 défini par inet_dist_listen_min/max Les pare-feu doivent autoriser le trafic dans cette plage à passer entre les nœuds en cluster.

Console RabbitMQ Management:

  • PORT 15672 pour RabbitMQ version 3.x
  • PORT 55672 pour RabbitMQ pre 3.x

PORT 5672 Port principal de RabbitMQ.

Pour un groupe de nœuds, ils doivent être ouverts les uns aux autres sur 35197, 4369 et 5672.

Pour tous les serveurs souhaitant utiliser la file d'attente de messages, seul 5672 est requis.

138
bluemalkin

Quels ports RabbitMQ utilise-t-il?

Par défaut: 5672, le manuel a la réponse. C'est défini dans la variable RABBITMQ_NODE_PORT.

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

Le nombre pourrait être différent si changé par quelqu'un dans le fichier de configuration de rabbitmq:

vi /etc/rabbitmq/rabbitmq-env.conf

Demandez à l'ordinateur de vous dire:

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 regarde, 5672 et 15672

Utilisez 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

Oh regarde 5672.

utilise lsof:

eric@dev ~$ 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)

utilise nmap depuis une autre machine, découvrez si 5672 est ouvert:

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

Essayez de vous connecter manuellement à un port avec telnet, 5671 est FERMÉ:

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

Essayez de vous connecter manuellement à un port avec telnet, 5672 est OUVERT:

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

Vérifiez votre pare-feu:

Sudo cat /etc/sysconfig/iptables  

Il devrait vous dire quels ports sont ouverts:

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

Réappliquez votre pare-feu:

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  ]
69
Eric Leschinski

Pour connaître les ports utilisés par rabbitmq :

$ epmd -names

Sorties:

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

Exécutez-les en tant que root:

lsof -i :4369
lsof -i :25672

Plus d'informations sur les options epmd.

13
Mick

Accès au port

Les pare-feu et autres outils de sécurité peuvent empêcher RabbitMQ de se lier à un port. Dans ce cas, RabbitMQ ne pourra pas démarrer. Assurez-vous que les ports suivants peuvent être ouverts:

4369: epmd, un service de découverte entre homologues utilisé par les nœuds RabbitMQ et les outils CLI

5672, 5671: utilisés par les clients AMQP 0-9-1 et 1.0 sans et avec TLS

25672: utilisé par la distribution Erlang pour la communication entre les noeuds et les outils CLI et est alloué à partir d'une plage dynamique (limitée à un seul port par défaut, calculée comme port AMQP + 20000). Voir le guide de réseautage pour plus de détails.

15672: Clients API HTTP et rabbitmqadmin (uniquement si le plug-in de gestion est activé)

61613, 61614: Clients STOMP sans et avec TLS (uniquement si le plug-in STOMP est activé)

1883, 8883: (Clients MQTT sans et avec TLS, si le plug-in MQTT est activé

15674: Clients STOMP sur WebSockets (uniquement si le plug-in Web STOMP est activé)

15675: clients MQTT sur WebSockets (uniquement si le plug-in Web MQTT est activé)

Référence doc: https://www.rabbitmq.com/install-windows-manual.html

7
code5