RabbitMQ使用哪些端口?

mpgws1up  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(4)|浏览(175)

RabbitMQ Server在防火墙上为节点集群使用或需要打开哪些端口?
我的/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?
1.为什么5672不运行在tcp上,而不仅仅是tcp6上?

tsm1rwdh

tsm1rwdh1#

PORT 4369:Erlang使用端口Map器守护程序(epmd)解析集群中的节点名称。节点必须能够相互访问,并且能够访问端口Map器守护程序,集群才能正常工作。
PORT 35197由inet_dist_listen_min/max设置防火墙必须允许此范围内的通信在群集节点之间传递
RabbitMQ管理控制台:

  • 用于RabbitMQ版本3.x的端口15672
  • 用于RabbitMQ 3.x之前版本的端口55672

确保rabbitmq_management插件已启用,否则您将无法在这些端口上访问管理控制台。
端口5672 RabbitMQ主端口。
对于节点群集,它们必须在3519743695672上相互开放。
对于任何要使用消息队列的服务器,只需要5672

2sbarzqh

2sbarzqh2#

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  ]
i86rm4rw

i86rm4rw3#

要了解rabbitmq使用哪些端口

$ epmd -names

输出:

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

以root用户身份运行这些文件:

lsof -i :4369
lsof -i :25672

More about epmd options.

ix0qys7i

ix0qys7i4#

端口访问
防火墙和其他安全工具可能会阻止RabbitMQ绑定到端口。如果发生这种情况,RabbitMQ将无法启动。请确保以下端口可以打开:
4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务
5672、5671:由不带和带TLS的AMQP 0-9-1和1.0客户端使用
25672:Erlang分发用于节点间和CLI工具通信,从动态范围分配(默认限制为单个端口,按AMQP端口+20000计算),详见组网指南。
15672:HTTP API客户端和rabbitmqadmin(仅当启用管理插件时)
61613、61614:不带和带TLS的STOMP客户端(仅当启用STOMP插件时)
1883、8883:(如果启用了MQTT插件,则不带和带TLS的MQTT客户端
15674:STOMP-over-WebSockets客户端(仅当启用Web STOMP插件时)
15675:MQTT-over-WebSockets客户端(仅当启用Web MQTT插件时)
参考文件:https://www.rabbitmq.com/install-windows-manual.html

相关问题