[rabbitmq] RabbitMQ는 어떤 포트를 사용합니까?

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을 모두 열어야합니까?

  2. tcp6뿐만 아니라 tcp에서도 5672가 실행되지 않는 이유는 무엇입니까?



답변

포트 4369 : Erlang은 클러스터에서 노드 이름을 확인하기 위해 포트 매퍼 데몬 (epmd)을 사용합니다. 클러스터링이 작동하려면 노드가 서로 도달하고 포트 맵퍼 데몬에 도달 할 수 있어야합니다.

inet_dist_listen_min / max 방화벽으로 설정된 포트 35197 방화벽은이 범위의 트래픽이 클러스터 된 노드 사이를 통과하도록 허용해야합니다.

RabbitMQ 관리 콘솔 :

  • RabbitMQ 버전 3.x 용 포트 15672
  • RabbitMQ pre 3.x 용 포트 55672

포트 5672RabbitMQ 메인 포트.

노드 클러스터의 35197경우 4369및 에서 서로 열려 있어야합니다 5672.

메시지 대기열을 사용하려는 서버의 경우에만 5672필요합니다.


답변

RabbitMQ는 어떤 포트를 사용합니까?

기본값 : 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

오 봐, 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

텔넷을 사용하여 수동으로 포트에 연결하십시오. 5671이 닫혔습니다.

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

텔넷을 사용하여 수동으로 포트에 연결하십시오. 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  ]


답변

rabbitmq가 사용하는 포트를 찾으려면 다음을 수행하십시오.

$ epmd -names

출력 :

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

이것을 루트로 실행하십시오 :

lsof -i :4369
lsof -i :25672

epmd 옵션에 대한 추가 정보


답변

포트 액세스

방화벽 및 기타 보안 도구로 RabbitMQ가 포트에 바인딩되지 않을 수 있습니다. 이 경우 RabbitMQ가 시작되지 않습니다. 다음 포트를 열 수 있는지 확인하십시오.

4369 : RabbitMQ 노드 및 CLI 도구에서 사용하는 피어 검색 서비스 인 epmd

5672, 5671 : TLS가 있거나없는 AMQP 0-9-1 및 1.0 클라이언트에서 사용

25672 : 노드 간 및 CLI 도구 통신을 위해 Erlang 배포에서 사용되며 동적 범위 (기본적으로 단일 포트로 제한되며 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


답변