Jakie porty używa RabbitMQ Server lub musi być otwarte na zaporze dla klastra węzłów?
Mój /usr/lib/rabbitmq/bin/rabbitmq-env
jest ustawiony poniżej, który zakładam, że jest potrzebny (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"
Nie dotykałem tego, rabbitmq.config
aby ustawić niestandardowy, tcp_listener
więc powinien słuchać domyślnego 5672.
Oto odpowiednie wiersze 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
Moje pytania to:
aby inne węzły mogły łączyć się z klastrem, czy wszystkie 3 porty 4369, 5672 i 35197 muszą być otwarte?
Dlaczego 5672 nie działa na tcp, a nie tylko na tcp6?
Odpowiedzi:
PORT 4369: Erlang wykorzystuje demona mapowania portów (epmd) do rozpoznawania nazw węzłów w klastrze. Węzły muszą być w stanie dotrzeć do siebie nawzajem i do demona mapowania portów, aby klastrowanie działało.
PORT 35197 ustawiony przez inet_dist_listen_min / max Zapory sieciowe muszą zezwalać na ruch z tego zakresu na przechodzenie między węzłami w klastrze
Konsola zarządzania RabbitMQ:
5672
Główny port PORT RabbitMQ.Na węzłach klastra, muszą być otwarte, aby wzajemnie
35197
,4369
a5672
.W przypadku wszystkich serwerów, które chcą korzystać z kolejki komunikatów,
5672
jest to tylko wymagane.źródło
Z jakich portów korzysta RabbitMQ?
Domyślnie: 5672, instrukcja zawiera odpowiedź. Jest zdefiniowane w
RABBITMQ_NODE_PORT
zmiennej.https://www.rabbitmq.com/configure.html#define-environment-variables
Numer może być inny, jeśli zostanie zmieniony przez kogoś w pliku konfiguracyjnym rabbitmq:
Poproś komputer, aby powiedział:
O spójrz, 5672 i 15672
Użyj netstat:
Och, spójrz 5672.
użyj lsof:
użyj nmap z innego komputera, sprawdź, czy 5672 jest otwarty:
Spróbuj połączyć się z portem ręcznie za pomocą telnetu, 5671 jest ZAMKNIĘTY:
Spróbuj połączyć się z portem ręcznie za pomocą telnetu, 5672 jest OTWARTY:
Sprawdź swoją zaporę:
Powinien powiedzieć, które porty są otwarte:
Ponownie zastosuj zaporę:
źródło
Aby dowiedzieć się, jakich portów używa Rabbitmq :
Wyjścia:
Uruchom je jako root:
Więcej informacji o opcjach epmd.
źródło
lsof
jest boleśnie powolny ... i wymaga uprawnień roota. Możesz zrobić to samo, znacznie szybciej, znetstat -an | egrep '\.(4369|25672).*LISTEN'
Dostęp do portu
Zapory i inne narzędzia zabezpieczające mogą uniemożliwić RabbitMQ powiązanie z portem. W takim przypadku RabbitMQ nie uruchomi się. Upewnij się, że można otworzyć następujące porty:
4369: epmd, usługa wykrywania równorzędnego używana przez węzły RabbitMQ i narzędzia CLI
5672, 5671: używane przez klientów AMQP 0-9-1 i 1,0 bez i z TLS
25672: używany przez dystrybucję Erlang do komunikacji między węzłami i narzędziami CLI i jest przydzielany z zakresu dynamicznego (domyślnie ograniczony do jednego portu, obliczany jako port AMQP + 20000). Szczegółowe informacje można znaleźć w przewodniku po sieci.
15672: Klienci HTTP API i rabbitmqadmin (tylko jeśli wtyczka zarządzania jest włączona)
61613, 61614: klienci STOMP bez i z TLS (tylko jeśli wtyczka STOMP jest włączona)
1883, 8883: (klienci MQTT bez i z TLS, jeśli wtyczka MQTT jest włączona
15674: Klienci STOMP-over-WebSockets (tylko jeśli wtyczka Web STOMP jest włączona)
15675: klienci MQTT-over-WebSockets (tylko jeśli włączona jest wtyczka Web MQTT)
Dokument referencyjny: https://www.rabbitmq.com/install-windows-manual.html
źródło