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 nmap
unter 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 ipfw
und rabbitmq-server
zur system preferences -> security -> firewall -> advanced
Anwendungsliste 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.conf
einen Eintrag enthielt, der NODE_IP_ADDRESS
die Datei nur an den lokalen Host bindet. Das Entfernen des NODE_IP_ADDRESS
Eintrags 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.conf
Aussehen 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_ADDRESS
Eintrag 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