145

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 が tcp6 だけでなく tcp で実行されないのはなぜですか?

4

4 に答える 4

81

RabbitMQ はどのポートを使用していますか?

デフォルト: 5672、マニュアルに答えがあります。RABBITMQ_NODE_PORT変数で定義されています。

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

数は、rabbitmq 構成ファイルで誰かが変更した場合、異なる場合があります。

vi /etc/rabbitmq/rabbitmq-env.conf

それが見えるかどうかnmapに尋ねます:

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 に尋ねます:

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)

別のマシンから nmap を使用し、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

telnet を使用して手動でポートに接続してみてください。5671 は閉じています:

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

telnet を使用して手動でポートに接続してみてください。5672 は開いています:

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  ]
于 2014-09-08T21:53:05.697 に答える
20

rabbitmq が使用するポートを調べるには:

$ epmd -names

出力:

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

これらをルートとして実行します。

lsof -i :4369
lsof -i :25672

epmd オプションの詳細。

于 2014-04-16T22:17:47.237 に答える