Welche Ports verwendet RabbitMQ Server oder muss in der Firewall für einen Knotencluster geöffnet sein?
Mein /usr/lib/rabbitmq/bin/rabbitmq-env
ist unten eingestellt, von dem ich annehme, dass es benötigt wird (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"
Ich habe das nicht berührt rabbitmq.config
, um einen Benutzer tcp_listener
festzulegen, daher sollte der Standard 5672 abgehört werden.
Hier sind die relevanten Netstat-Zeilen:
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
Meine Fragen sind:
Müssen alle drei Ports 4369, 5672 und 35197 geöffnet sein, damit andere Knoten eine Verbindung zum Cluster herstellen können?
Warum läuft 5672 nicht auf TCP und nicht nur auf TCP6?
Antworten:
PORT 4369: Erlang verwendet einen Port Mapper Daemon (epmd) zur Auflösung von Knotennamen in einem Cluster. Knoten müssen in der Lage sein, einander und den Port-Mapper-Daemon zu erreichen, damit das Clustering funktioniert.
PORT 35197, festgelegt durch inet_dist_listen_min / max Firewalls müssen zulassen, dass Datenverkehr in diesem Bereich zwischen Clusterknoten übertragen wird
RabbitMQ-Verwaltungskonsole:
PORT
5672
RabbitMQ Hauptport.Für einen Cluster von Knoten, müssen sie miteinander auf offen sein
35197
,4369
und5672
.Für alle Server, die die Nachrichtenwarteschlange verwenden möchten, ist nur
5672
erforderlich.quelle
Welche Ports verwendet RabbitMQ?
Standard: 5672, das Handbuch hat die Antwort. Es ist in der
RABBITMQ_NODE_PORT
Variablen definiert .https://www.rabbitmq.com/configure.html#define-environment-variables
Die Nummer kann anders sein, wenn sie von jemandem in der Rabbitmq-Konfigurationsdatei geändert wird:
Bitten Sie den Computer, Ihnen Folgendes zu sagen:
Oh schau, 5672 und 15672
Verwenden Sie netstat:
Oh schau 5672.
benutze lsof:
Verwenden Sie nmap von einem anderen Computer und stellen Sie fest, ob 5672 geöffnet ist:
Versuchen Sie, manuell mit Telnet eine Verbindung zu einem Port herzustellen. 5671 ist GESCHLOSSEN:
Versuchen Sie, manuell mit Telnet eine Verbindung zu einem Port herzustellen. 5672 ist OFFEN:
Überprüfen Sie Ihre Firewall:
Es sollte Ihnen sagen, welche Ports geöffnet sind:
Wenden Sie Ihre Firewall erneut an:
quelle
So finden Sie heraus, welche Ports rabbitmq verwendet :
Ausgänge:
Führen Sie diese als root aus:
Weitere Informationen zu epmd-Optionen.
quelle
lsof
ist schmerzhaft langsam ... und erfordert Root-Rechte. Sie können das gleiche viel schneller mitnetstat -an | egrep '\.(4369|25672).*LISTEN'
Portzugang
Firewalls und andere Sicherheitstools können verhindern, dass RabbitMQ an einen Port gebunden wird. In diesem Fall kann RabbitMQ nicht gestartet werden. Stellen Sie sicher, dass die folgenden Ports geöffnet werden können:
4369: epmd, ein Peer-Discovery-Service, der von RabbitMQ-Knoten und CLI-Tools verwendet wird
5672, 5671: Wird von AMQP 0-9-1- und 1.0-Clients ohne und mit TLS verwendet
25672: Wird von der Erlang-Distribution für die Kommunikation zwischen Knoten und CLI-Tools verwendet und wird aus einem Dynamikbereich zugewiesen (standardmäßig auf einen einzelnen Port beschränkt, berechnet als AMQP-Port + 20000). Weitere Informationen finden Sie im Netzwerkhandbuch.
15672: HTTP-API-Clients und rabbitmqadmin (nur wenn das Management-Plugin aktiviert ist)
61613, 61614: STOMP-Clients ohne und mit TLS (nur wenn das STOMP-Plugin aktiviert ist)
1883, 8883: (MQTT-Clients ohne und mit TLS, wenn das MQTT-Plugin aktiviert ist
15674: STOMP-over-WebSockets-Clients (nur wenn das Web-STOMP-Plugin aktiviert ist)
15675: MQTT-over-WebSockets-Clients (nur wenn das Web-MQTT-Plugin aktiviert ist)
Referenzdokument: https://www.rabbitmq.com/install-windows-manual.html
quelle