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
내 질문은 :
-
다른 노드가 클러스터에 연결하려면 3 개의 포트 4369, 5672 및 35197을 모두 열어야합니까?
-
tcp6뿐만 아니라 tcp에서도 5672가 실행되지 않는 이유는 무엇입니까?
답변
포트 4369 : Erlang은 클러스터에서 노드 이름을 확인하기 위해 포트 매퍼 데몬 (epmd)을 사용합니다. 클러스터링이 작동하려면 노드가 서로 도달하고 포트 맵퍼 데몬에 도달 할 수 있어야합니다.
inet_dist_listen_min / max 방화벽으로 설정된 포트 35197 방화벽은이 범위의 트래픽이 클러스터 된 노드 사이를 통과하도록 허용해야합니다.
RabbitMQ 관리 콘솔 :
- RabbitMQ 버전 3.x 용 포트 15672
- RabbitMQ pre 3.x 용 포트 55672
포트 5672
RabbitMQ 메인 포트.
노드 클러스터의 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
답변
포트 액세스
방화벽 및 기타 보안 도구로 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
답변
