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上?
4条答案
按热度按时间tsm1rwdh1#
PORT 4369:Erlang使用端口Map器守护程序(epmd)解析集群中的节点名称。节点必须能够相互访问,并且能够访问端口Map器守护程序,集群才能正常工作。
PORT 35197由inet_dist_listen_min/max设置防火墙必须允许此范围内的通信在群集节点之间传递
RabbitMQ管理控制台:
确保rabbitmq_management插件已启用,否则您将无法在这些端口上访问管理控制台。
端口
5672
RabbitMQ主端口。对于节点群集,它们必须在
35197
、4369
和5672
上相互开放。对于任何要使用消息队列的服务器,只需要
5672
。2sbarzqh2#
RabbitMQ正在使用哪些端口?
默认值:5672,手册中有答案,在
RABBITMQ_NODE_PORT
变量中定义。https://www.rabbitmq.com/configure.html#define-environment-variables
如果有人在rabbitmq配置文件中更改了该数字,则可能会有所不同:
询问nmap是否可以看到它:
哦看5672和15672
询问netstat是否可以看到它:
哦,看5672。
使用lsof查看端口:
使用另一台计算机上的nmap,检查5672是否已打开:
尝试使用telnet手动连接到端口,5671已关闭:
尝试使用telnet手动连接到端口,5672已打开:
检查防火墙:
它应该告诉您哪些端口是打开的:
重新应用防火墙:
i86rm4rw3#
要了解rabbitmq使用哪些端口:
输出:
以root用户身份运行这些文件:
More about epmd options.
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