¿Qué puertos usa o necesita tener RabbitMQ Server abierto en el firewall para un grupo de nodos?
Mi /usr/lib/rabbitmq/bin/rabbitmq-env
se establece debajo de lo que supongo que son necesarios (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"
No he tocado el rabbitmq.config
para configurar una costumbre, tcp_listener
por lo que debería estar escuchando en el 5672 predeterminado.
Estas son las líneas de netstat relevantes:
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
Mis preguntas son:
para que otros nodos puedan conectarse al clúster, ¿deben estar abiertos los 3 puertos 4369, 5672 y 35197?
¿Por qué 5672 no se ejecuta en tcp y no solo tcp6?
Respuestas:
PUERTO 4369: Erlang utiliza un Port Mapper Daemon (epmd) para la resolución de nombres de nodo en un clúster. Los nodos deben poder comunicarse entre sí y con el demonio mapeador de puertos para que la agrupación funcione.
PUERTO 35197 establecido por inet_dist_listen_min / max Los firewalls deben permitir que el tráfico en este rango pase entre nodos agrupados
Consola de administración RabbitMQ:
PUERTO
5672
RabbitMQ puerto principal.Para un grupo de nodos, deben estar abiertos entre sí en
35197
,4369
y5672
.Para cualquier servidor que quiera usar la cola de mensajes, solo
5672
es obligatorio.fuente
¿Qué puertos está usando RabbitMQ?
Predeterminado: 5672, el manual tiene la respuesta. Se define en la
RABBITMQ_NODE_PORT
variable.https://www.rabbitmq.com/configure.html#define-environment-variables
El número puede ser diferente si alguien lo cambia en el archivo de configuración rabbitmq:
Pídale a la computadora que le diga:
Oh mira, 5672 y 15672
Use netstat:
Oh mira 5672.
use lsof:
use nmap desde una máquina diferente, averigüe si 5672 está abierto:
Intente conectarse a un puerto manualmente con telnet, 5671 está CERRADO:
Intente conectarse a un puerto manualmente con telnet, 5672 está ABIERTO:
Comprueba tu cortafuegos:
Debería decirle qué puertos se abren:
Vuelva a aplicar su firewall:
fuente
Para averiguar qué puertos utiliza rabbitmq :
Salidas:
Ejecute estos como root:
Más sobre las opciones de epmd.
fuente
lsof
es dolorosamente lento ... y requiere privilegios de root. Usted puede hacer lo mismo, mucho más rápidamente, connetstat -an | egrep '\.(4369|25672).*LISTEN'
Acceso al puerto
Los firewalls y otras herramientas de seguridad pueden evitar que RabbitMQ se vincule a un puerto. Cuando eso sucede, RabbitMQ no se iniciará. Asegúrese de que se puedan abrir los siguientes puertos:
4369: epmd, un servicio de descubrimiento de pares utilizado por los nodos RabbitMQ y las herramientas CLI
5672, 5671: utilizado por los clientes AMQP 0-9-1 y 1.0 sin y con TLS
25672: utilizado por la distribución Erlang para la comunicación entre nodos y herramientas de CLI y se asigna desde un rango dinámico (limitado a un solo puerto por defecto, calculado como puerto AMQP + 20000). Consulte la guía de redes para más detalles.
15672: clientes API HTTP y rabbitmqadmin (solo si el complemento de administración está habilitado)
61613, 61614: clientes STOMP sin y con TLS (solo si el complemento STOMP está habilitado)
1883, 8883: (clientes MQTT sin y con TLS, si el complemento MQTT está habilitado
15674: clientes STOMP-over-WebSockets (solo si el complemento Web STOMP está habilitado)
15675: clientes MQTT-over-WebSockets (solo si el complemento Web MQTT está habilitado)
Documento de referencia: https://www.rabbitmq.com/install-windows-manual.html
fuente