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

12

Ich habe RabbitMQ in seiner neuesten Version mit Standardkonfiguration auf meinem Mac installiert, und wenn ich von localhost darauf zugreife, gibt es überhaupt kein Problem. Aber heute baue ich einen Linux-Computer im lokalen Netzwerk und kann von diesem Computer aus keine Verbindung zu meinem RabbitMQ-Server herstellen. Ich habe alle Firewalls auf meinem Mac heruntergefahren und alles, was möglicherweise die Verbindung blockieren könnte. Ich bin perfekt in der Lage, eine Verbindung zu MongoDB herzustellen, die auf einem anderen Port und mit einer anderen Anwendung ausgeführt wird, ssh zu meinem MacBook usw., aber ich kann keine Verbindung zu RabbitMQ herstellen (selbst wenn ich den Port ändere, auf dem es ausgeführt wird). Wenn ich nmapunter Linux arbeite, um zu überprüfen, ob der entsprechende Port auf meinem Mac geöffnet ist, wird Folgendes angezeigt:

>> 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 das Gleiche 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 die Regel ipfwmanuell hinzugefügt und rabbitmq-serverzur system preferences -> security -> firewall -> advancedAnwendungsliste hinzugefügt , um alle eingehenden Verbindungen für alle Fälle zuzulassen, aber es hat nicht geholfen. Haben Sie eine Idee, wie Sie den Port für den Netzwerkzugriff von einem anderen Computer im lokalen Netzwerk öffnen können? Wenn ich es umgekehrt mache (installiere rabbitmq unter Linux und verbinde dich mit dem Mac), läuft es einwandfrei.

Kreeki
quelle

Antworten:

18

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

Es stellte sich heraus, dass die Datei /usr/local/etc/rabbitmq/rabbitmq-env.confeinen Eintrag enthielt NODE_IP_ADDRESS, um sie nur an localhost zu binden. Durch Entfernen des NODE_IP_ADDRESSEintrags aus der Konfiguration wird der Port an alle Netzwerk-Inferfaces gebunden .

dorzey
quelle
5

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

Jose
quelle
3

Was für mich funktioniert hat, war eine Kombination der beiden vorherigen Antworten.

Machen Sie Ihre /usr/local/etc/rabbitmq/rabbitmq-env.conf so:

CONFIG_FILE = / usr / local / etc / rabbitmq / rabbitmq

NODE_IP_ADDRESS = 0.0.0.0

NODENAME = rabbit @ localhost

(Wenn ich den Eintrag NODE_IP_ADDRESS vollständig entferne, gibt mir rabbitmq Fehler.)

Rob Carpenter
quelle
0

Mit welchem ​​Konto stellen Sie eine Verbindung zum RabbitMQ her? Wenn Sie ein Gastkonto verwenden. Dies könnte helfen

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

Shuliyey
quelle
1
Der Zweck von SU besteht darin, eine Wissensdatenbank aufzubauen und nicht eine Sammlung von Links zu Antworten an anderer Stelle. Externe Links können unterbrochen werden. In diesem Fall hätte Ihre Antwort keinen Wert. Bitte
fügen