Öffnen Sie Port 5672/tcp für den Zugriff auf RabbitMQ auf dem Mac.

Öffnen Sie Port 5672/tcp für den Zugriff auf RabbitMQ auf dem Mac.

Ich habe RabbitMQ in der neusten Version mit Standardkonfiguration auf meinem Mac installiert und wenn ich vom lokalen Host darauf zugreife, gibt es überhaupt keine Probleme. Aber heute baue ich eine Linux-Maschine im lokalen Netzwerk auf und kann von dieser Maschine aus keine Remoteverbindung zu meinem RabbitMQ-Server herstellen. Ich habe alle Firewalls auf meinem Mac und alles, was die Verbindung möglicherweise blockieren könnte, heruntergefahren. Ich kann problemlos eine Verbindung zu MongoDB herstellen, das auf einem anderen Port läuft, und zu jeder anderen Anwendung, per SSH zu meinem MacBook und so weiter, aber ich kann keine Verbindung zu RabbitMQ herstellen (selbst wenn ich den Port ändere, auf dem es läuft). Wenn ich nmapunter Linux überprüfe, ob der entsprechende Port auf meinem Mac geöffnet ist, erhalte ich Folgendes:

>> nmap -p 5672 192.168.1.101 
Nmap scan report for 192.168.1.101
Host is up (0.00019s latency).
PORT     STATE  SERVICE
5672/tcp closed amqp

Aber wenn ich dasselbe direkt auf meinem Mac mache:

>> nmap -p 5672 localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00049s latency).
PORT     STATE SERVICE
5672/tcp open  amqp

Ich habe manuell eine Regel hinzugefügt ipfwund rabbitmq-serverzur system preferences -> security -> firewall -> advancedAnwendungsliste hinzugefügt, um vorsichtshalber alle eingehenden Verbindungen zuzulassen, aber das hat nicht geholfen. Irgendeine Idee, wie man den Port für den Netzwerkzugriff von einem anderen Computer im lokalen Netzwerk öffnen kann? Wenn ich es andersherum mache (RabbitMQ unter Linux installieren und von Mac aus eine Verbindung herstellen), läuft es einwandfrei.

Antwort1

Als ich RabbitMQ über Brew auf Mac OS X installierte, hatte ich das gleiche Problem, dass Port 5672 nur auf dem lokalen Host geöffnet war.

Es stellte sich heraus, dass die Datei /usr/local/etc/rabbitmq/rabbitmq-env.confeinen Eintrag enthielt, der NODE_IP_ADDRESSdie Datei nur an den lokalen Host bindet. Das Entfernen des NODE_IP_ADDRESSEintrags aus der Konfiguration bindet den Port analle Netzwerkschnittstellen.

Antwort2

Es scheint, dass der Daemon 127.0.0.1 statt 0.0.0.0 bindet. Sie können dies mit dem Netstat-Tool überprüfen.

Antwort3

Was bei mir funktioniert hat, war eine Kombination der beiden vorherigen Antworten.

Gestalten Sie Ihr /usr/local/etc/rabbitmq/rabbitmq-env.confAussehen folgendermaßen:

#rabbitmq-env.conf
CONFIG_FILE=/usr/local/etc/rabbitmq/rabbitmq
NODE_IP_ADDRESS=0.0.0.0
NODENAME=rabbit@localhost

Wenn ich den NODE_IP_ADDRESSEintrag vollständig entferne, gibt rabbitmq mir Fehler aus.

Antwort4

welches Konto verwenden Sie, um sich mit RabbitMQ zu verbinden? Wenn Sie ein Gastkonto verwenden. Dies könnte helfen

https://www.rabbitmq.com/access-control.html

verwandte Informationen