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
私の質問は:
他のノードがクラスターに接続できるようにするには、3つのポート4369、5672、および35197をすべて開く必要がありますか?
なぜtcp6だけでなくtcpで5672が実行されないのですか?
ポート4369:Erlangは、クラスター内のノード名の解決にポートマッパーデーモン(epmd)を使用します。クラスタリングが機能するためには、ノードが相互にアクセスでき、ポートマッパーデーモンにアクセスできる必要があります。
Inet_dist_listen_min/maxによって設定されたPORT 35197ファイアウォールは、この範囲のトラフィックがクラスターノード間を通過することを許可する必要があります
RabbitMQ管理コンソール:
PORT 5672
RabbitMQメインポート。
ノードのクラスターの場合、それらは35197
、4369
、および5672
で互いに開いている必要があります。
メッセージキューを使用するサーバーの場合は、5672
のみが必要です。
デフォルト:5672、マニュアルには答えがあります。 RABBITMQ_NODE_PORT
変数で定義されています。
https://www.rabbitmq.com/configure.html#define-environment-variables
rabbitmq構成ファイルで誰かが変更した場合、番号は異なる場合があります:
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
見て、5662、および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を使用し、5722が開いているかどうかを確認します:
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を使用して手動でポートに接続してみてください、5722は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 ]
rabbitmqが使用するポートを調べるには:
$ epmd -names
出力:
epmd: up and running on port 4369 with data:
name rabbit at port 25672
これらをルートとして実行します:
lsof -i :4369
lsof -i :25672
ポートアクセス
ファイアウォールおよびその他のセキュリティツールにより、RabbitMQがポートにバインドできなくなる場合があります。その場合、RabbitMQは起動に失敗します。次のポートを開くことができることを確認してください。
4369:epmd、RabbitMQノードおよびCLIツールで使用されるピア検出サービス
5672、5671:TLSの有無にかかわらずAMQP 0-9-1および1.0クライアントで使用
25672:ノード間およびCLIツールの通信のためにErlangディストリビューションによって使用され、ダイナミックレンジから割り当てられます(デフォルトでは、AMQPポート+ 20000として計算された単一ポートに制限されます)。詳細については、ネットワークガイドを参照してください。
15672:HTTP APIクライアントとrabbitmqadmin(管理プラグインが有効な場合のみ)
61613、61614:TLSの有無にかかわらずSTOMPクライアント(STOMPプラグインが有効な場合のみ)
1883、8833:(MQTTプラグインが有効な場合、TLSの有無にかかわらずMQTTクライアント
15674:STOMP-over-WebSocketsクライアント(Web STOMPプラグインが有効な場合のみ)
15675:MQTT-over-WebSocketsクライアント(Web MQTTプラグインが有効な場合のみ)
リファレンスドキュメント: https://www.rabbitmq.com/install-windows-manual.html