Quels ports le serveur RabbitMQ utilise-t-il ou doit-il ouvrir sur le pare-feu pour un cluster de nœuds?
My /usr/lib/rabbitmq/bin/rabbitmq-env
est défini en dessous duquel je suppose que sont nécessaires (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é au rabbitmq.config
pour définir une personnalisation tcp_listener
, il devrait donc écouter 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:
pour que les autres nœuds puissent se connecter au cluster, les 3 ports 4369, 5672 et 35197 doivent-ils être ouverts?
Pourquoi 5672 ne fonctionne-t-il pas sur TCP et pas seulement sur TCP6?
Réponses:
PORT 4369: Erlang utilise un démon de mappage de port (epmd) pour la résolution des noms de nœuds dans un cluster. Les nœuds doivent pouvoir atteindre les uns les autres et le démon mappeur de port pour que le clustering fonctionne.
PORT 35197 défini par inet_dist_listen_min / max Les pare-feu doivent permettre au trafic de cette plage de passer entre les nœuds en cluster
Console de gestion RabbitMQ:
PORT
5672
Port principal de RabbitMQ.Pour un cluster de nœuds, ils doivent être ouverts les uns aux autres sur
35197
,4369
et5672
.Pour tous les serveurs qui souhaitent utiliser la file d'attente de messages, seul
5672
est requis.la source
Quels ports utilise RabbitMQ?
Par défaut: 5672, le manuel a la réponse. Il est défini dans la
RABBITMQ_NODE_PORT
variable.https://www.rabbitmq.com/configure.html#define-environment-variables
Le numéro peut être différent s'il est modifié par quelqu'un dans le fichier de configuration rabbitmq:
Demandez à l'ordinateur de vous dire:
Oh regarde, 5672 et 15672
Utilisez netstat:
Oh regarde 5672.
utilisez lsof:
utilisez nmap à partir d'une autre machine, découvrez si 5672 est ouvert:
Essayez de vous connecter manuellement à un port avec telnet, 5671 est FERMÉ:
Essayez de vous connecter manuellement à un port avec telnet, 5672 est OUVERT:
Vérifiez votre pare-feu:
Il devrait vous dire quels ports sont ouverts:
Réappliquez votre pare-feu:
la source
Pour connaître les ports utilisés par rabbitmq :
Les sorties:
Exécutez-les en tant que root:
En savoir plus sur les options epmd.
la source
lsof
est douloureusement lent ... et nécessite des privilèges root. Vous pouvez faire la même chose, beaucoup plus rapidement, avecnetstat -an | egrep '\.(4369|25672).*LISTEN'
Accès au port
Les pare-feu et autres outils de sécurité peuvent empêcher RabbitMQ de se lier à un port. Lorsque cela se produit, RabbitMQ ne démarre pas. Assurez-vous que les ports suivants peuvent être ouverts:
4369: epmd, un service de découverte de pairs utilisé par les nœuds RabbitMQ et les outils CLI
5672, 5671: utilisé 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 nœuds 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). Consultez le guide de mise en réseau pour plus de détails.
15672: clients API HTTP et rabbitmqadmin (uniquement si le plugin de gestion est activé)
61613, 61614: clients STOMP sans et avec TLS (uniquement si le plugin STOMP est activé)
1883, 8883: (clients MQTT sans et avec TLS, si le plugin MQTT est activé
15674: clients STOMP-over-WebSockets (uniquement si le plug-in Web STOMP est activé)
15675: clients MQTT-over-WebSockets (uniquement si le plugin Web MQTT est activé)
Document de référence: https://www.rabbitmq.com/install-windows-manual.html
la source