147 votes

Quels sont les ports utilisés par RabbitMQ ?

Quels ports le serveur RabbitMQ utilise-t-il ou doit-il avoir ouverts sur le pare-feu pour un cluster de nœuds ?

Mon /usr/lib/rabbitmq/bin/rabbitmq-env est défini en dessous de ce que je suppose être 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é à la rabbitmq.config pour définir une tcp_listener donc il devrait écouter sur le 5672 par défaut.

Voici les lignes netstat pertinentes :

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 les suivantes :

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

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

166voto

user1730585 Points 471

PORT 4369 : Erlang utilise un Port Mapper Daemon (epmd) pour la résolution des noms de nœuds dans un cluster. Les nœuds doivent être en mesure de se joindre les uns aux autres et au port mapper daemon pour que le clustering 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 grappe.

Console de gestion RabbitMQ :

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

PORT 5672 Port principal de RabbitMQ.

Pour un cluster de nœuds, ceux-ci doivent être ouverts les uns aux autres sur 35197 , 4369 et 5672 .

Pour tous les serveurs qui veulent utiliser la file d'attente de messages, il faut seulement 5672 est nécessaire.

82voto

Eric Leschinski Points 14289

Quels ports RabbitMQ utilise-t-il ?

Valeur par défaut : 5672, RTFM pour une réponse directe :

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

Les ports personnalisés peuvent être définis dans votre fichier de configuration rabbitmq :

vi /etc/rabbitmq/rabbitmq-env.conf

Demandez à l'ordinateur de vous le 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 regardez, 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, regardez 5672.

utiliser 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)

utilisez nmap à partir d'une autre machine, pour savoir 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 à un port manuellement 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 à un port manuellement 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 indiquer 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  ]

21voto

Patt Points 5838

Pour savoir quels ports rabbitmq utilise :

$ epmd -names

Sorties :

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

Exécutez-les comme Root :

lsof -i :4369
lsof -i :25672

En savoir plus sur les options epmd.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X