RabbitMQ किन पोर्ट का उपयोग करता है?


135

RabbitMQ सर्वर किन पोर्ट का उपयोग करता है या नोड्स के क्लस्टर के लिए फ़ायरवॉल पर खुला होना चाहिए?

मेरा /usr/lib/rabbitmq/bin/rabbitmq-envसेट नीचे दिया गया है जिसे मैं मान रहा हूं कि जरूरत है (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"

मैंने rabbitmq.configएक कस्टम सेट करने के लिए छुआ नहीं है tcp_listenerइसलिए इसे डिफ़ॉल्ट 5672 पर सुनना चाहिए।

यहाँ प्रासंगिक netstat लाइनें हैं:

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

मेरे प्रश्न हैं:

  1. अन्य नोड्स को क्लस्टर से कनेक्ट करने में सक्षम होने के लिए, क्या सभी 3 पोर्ट 4369, 5672 और 35197 को खोलने की आवश्यकता है?

  2. 5672 tcp पर क्यों नहीं चल रहा है और tcp6 ही नहीं है?


2
StackOverflow के बजाय ServerFault पर अधिक प्रतिक्रिया मिल सकती है, लेकिन मुझे खुशी है कि आपने इसे यहाँ पोस्ट किया है क्योंकि यह वही है जो मैं देख रहा हूँ!
नॉर्मन एच

जवाबों:


151

पोर्ट 4369: एर्लांग एक क्लस्टर में नोड नामों के समाधान के लिए पोर्ट मैपर डेमन (एपीएमडी) का उपयोग करता है। नोड्स को काम करने के लिए एक दूसरे और पोर्ट मैपर डेमन तक पहुंचने में सक्षम होना चाहिए।

PORT 35197 द्वारा सेट किया गया inet_dist_listen_min / max फ़ायरवॉल को इस सीमा में ट्रैफ़िक को क्लस्टर्ड नोड्स के बीच से गुजरने की अनुमति देनी चाहिए

RabMMQ प्रबंधन कंसोल:

  • 15bit2 RabbitMQ संस्करण 3.x के लिए
  • RabbitMQ प्री 3.x के लिए PORT 55672

पोर्ट 5672खरगोश मुख्य बंदरगाह।

नोड्स के एक क्लस्टर के लिए, उन्हें एक दूसरे के लिए खुला होना चाहिए 35197, 4369और 5672

किसी भी सर्वर के लिए जो संदेश कतार का उपयोग करना चाहते हैं, केवल 5672आवश्यक है।


8
ऐसा लगता है कि रिलीज के 3.x श्रृंखला में प्रबंधन बंदरगाह 15672 में बदल गया है।
kjw0188

1
ऐसा लगता है कि प्रबंधन बंदरगाह 3.x में 15672 में बदल गया है: rabbitmq.com/management.html#configuration
ग्रेग एम। क्रसक

4
क्लस्टरिंग पोर्ट की तरह दिखता है 4369 और 25672 से: rabbitmq.com/clustering.html
kixorz

76

RabbitMQ किन पोर्ट का उपयोग कर रहा है?

डिफ़ॉल्ट: 5672, मैनुअल का जवाब है। यह RABBITMQ_NODE_PORTचर में परिभाषित किया गया है।

https://www.rabbitmq.com/configure.html#define-environment-variables

अगर खरगोश खरगोश कॉन्फ़िगरेशन फ़ाइल में किसी व्यक्ति द्वारा परिवर्तित किया गया हो तो संख्या भिन्न हो सकती है:

vi /etc/rabbitmq/rabbitmq-env.conf

आपको बताने के लिए कंप्यूटर से पूछें:

sudo nmap -p 1-65535 localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:50 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00041s latency).
PORT      STATE         SERVICE
443/tcp   open          https
5672/tcp  open          amqp
15672/tcp open  unknown
35102/tcp open  unknown
59440/tcp open  unknown

ओह देखो, 5672, और 15672

नेटस्टैट का उपयोग करें:

netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:55672               0.0.0.0:*                   LISTEN
tcp        0      0 :::5672                     :::*                        LISTEN

ओह 5672 देखो।

का उपयोग करें lsof:

eric@dev ~$ sudo lsof -i | grep beam
beam.smp  21216    rabbitmq   17u  IPv4 33148214      0t0  TCP *:55672 (LISTEN)
beam.smp  21216    rabbitmq   18u  IPv4 33148219      0t0  TCP *:15672 (LISTEN)

एक अलग मशीन से नैम्प का उपयोग करें, पता करें कि क्या 5672 खुला है:

sudo nmap -p 5672 10.0.1.71
Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:19 EDT
Nmap scan report for 10.0.1.71
Host is up (0.00011s latency).
PORT     STATE SERVICE
5672/tcp open  amqp
MAC Address: 0A:40:0E:8C:75:6C (Unknown)    
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

टेलनेट के साथ मैन्युअल रूप से एक पोर्ट से कनेक्ट करने का प्रयास करें, 5671 बंद है:

telnet localhost 5671
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

टेलनेट के साथ मैन्युअल रूप से एक पोर्ट से कनेक्ट करने का प्रयास करें, 5672 OPEN है:

telnet localhost 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

अपने फ़ायरवॉल की जाँच करें:

sudo cat /etc/sysconfig/iptables  

यह आपको बताना चाहिए कि किस पोर्ट को खुला बनाया गया है:

-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT

फिर से अपना फ़ायरवॉल:

sudo service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]

1
बहुत बढ़िया जवाब। अगर कुछ भी, तुम एक छोटे से खत्म हो गया है।
डार एग्रीशियस

यदि कोई व्यक्ति सोच रहा था - डिफ़ॉल्ट रूप से खरगोश केवल इंटरफ़ेस में आपके द्वारा निर्दिष्ट खरगोश के लिए 4369 पोर्ट को बांध देगा; यदि आप निर्दिष्ट इंटरफ़ेस के माध्यम से सभी खरगोशबिट-संबंधित ट्रैफ़िक की अनुमति देना चाहते थे (जैसे कि - अपने आप को समर्पित ओपनवीएनपी लिंक के माध्यम से) तो आपको rabbitmq को कॉन्फ़िगर करना होगा, ताकि अन्य इंटरफ़ेस को rabbitmq.conf (अन्यथा अन्य पोर्ट बाध्य न हों) के माध्यम से पास किया जा सके अपनी पसंद के इंटरफेस के बजाय सभी बंदरगाहों पर सुन रहे होंगे)
ग्रेग्री

15

यह जानने के लिए कि खरगोश किस पोर्ट का उपयोग करता है :

$ epmd -names

आउटपुट:

epmd: up and running on port 4369 with data:
name rabbit at port 25672

इन्हें रूट के रूप में चलाएं:

lsof -i :4369
lsof -i :25672

अधिक एपीएमडी विकल्पों के बारे में।


lsofदर्द धीमा है ... और इसे रूट विशेषाधिकार की आवश्यकता है। आप ऐसा ही कर सकते हैं, बहुत अधिक तेजी से,netstat -an | egrep '\.(4369|25672).*LISTEN'
14

क्या वास्तव में इसे जड़ की आवश्यकता है? मैं एक सामान्य उपयोगकर्ता के रूप में इसे ठीक से चलाने में सक्षम था। शायद हाल के संस्करणों में कुछ बदल गया है?
asgs

8

पोर्ट एक्सेस

Firewalls और अन्य सुरक्षा उपकरण RabbitMQ को एक बंदरगाह से बांधने से रोक सकते हैं। जब ऐसा होता है, तो RabbitMQ शुरू करने में विफल रहेगा। सुनिश्चित करें कि निम्नलिखित पोर्ट खोले जा सकते हैं:

4369: एपीएमडी, एक सहकर्मी खोज सेवा जो रैबिटमैक नोड्स और सीएलआई टूल्स द्वारा उपयोग की जाती है

5672, 5671: एएमक्यूपी 0-9-1 और 1.0 ग्राहकों द्वारा टीएलएस के साथ और बिना उपयोग किया जाता है

25672: इंटर-नोड और सीएलआई उपकरण संचार के लिए एरलंग वितरण द्वारा उपयोग किया जाता है और इसे डायनेमिक रेंज (डिफ़ॉल्ट रूप से एकल पोर्ट तक सीमित, एएमक्यूपी पोर्ट + 20000 के रूप में गणना) से आवंटित किया जाता है। विवरण के लिए नेटवर्किंग गाइड देखें।

15672: HTTP API क्लाइंट और खरगोशबिटकमिन (केवल प्रबंधन प्लगइन सक्षम होने पर)

61613, 61614: STOMP ग्राहक बिना और TLS के (केवल अगर STOMP प्लगइन सक्षम है)

1883, 8883: (MQTT क्लाइंट, बिना और TLS के साथ, यदि MQTT प्लगइन सक्षम है

15674: STOMP-over-WebSockets क्लाइंट (केवल तभी वेब STOMP प्लगइन सक्षम है)

15675: MQTT-over-WebSockets क्लाइंट्स (केवल अगर वेब MQTT प्लगइन सक्षम है)

संदर्भ doc: https://www.rabbitmq.com/install-windows-manual.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.