Port apa yang digunakan RabbitMQ?

135

Port apa yang digunakan atau perlu dibuka Server RabbitMQ di firewall untuk sekumpulan node?

Saya /usr/lib/rabbitmq/bin/rabbitmq-envdiatur di bawah ini yang saya anggap dibutuhkan (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"

Saya belum menyentuh rabbitmq.configuntuk mengatur kustom tcp_listenersehingga harus mendengarkan pada 5672 default.

Berikut adalah baris netstat yang relevan:

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

Pertanyaan saya adalah:

  1. agar node lain dapat terhubung ke cluster, apakah semua 3 port 4369, 5672 dan 35197 harus dibuka?

  2. Mengapa 5672 tidak berjalan di tcp dan bukan hanya tcp6?

bluemalkin.dll
sumber
2
Mungkin mendapat lebih banyak respons di ServerFault daripada StackOverflow tetapi saya senang Anda mempostingnya di sini karena itulah yang saya cari!
Norman H

Jawaban:

151

PORT 4369: Erlang menggunakan Port Mapper Daemon (epmd) untuk resolusi nama node dalam cluster. Node harus dapat menjangkau satu sama lain dan daemon mapper port agar pengelompokan berfungsi.

PORT 35197 yang disetel oleh inet_dist_listen_min / max Firewall harus mengizinkan lalu lintas dalam kisaran ini untuk melewati antara node berkerumun

Konsol Manajemen RabbitMQ:

  • PORT 15672 untuk RabbitMQ versi 3.x
  • PORT 55672 untuk RabbitMQ pre 3.x

PORT 5672Port utama RabbitMQ.

Untuk sekumpulan node, mereka harus terbuka satu sama lain di 35197, 4369dan 5672.

Untuk setiap server yang ingin menggunakan antrian pesan, hanya 5672diperlukan.

bluemalkin.dll
sumber
8
Sepertinya port manajemen telah berubah menjadi 15672 dalam seri rilis 3.x.
kjw0188
1
Tampaknya port manajemen telah berubah menjadi 15672 di 3.x: rabbitmq.com/management.html#configuration
Greg M. Krsak
4
Sepertinya port pengelompokan adalah 4369 dan 25672 dari: rabbitmq.com/clustering.html
kixorz
76

Port apa yang digunakan RabbitMQ?

Default: 5672, manual memiliki jawabannya. Ini ditentukan dalam RABBITMQ_NODE_PORTvariabel.

https://www.rabbitmq.com/configure.html#define-environment-variables

Nomornya mungkin berbeda jika diubah oleh seseorang di file konfigurasi rabbitmq:

vi /etc/rabbitmq/rabbitmq-env.conf

Minta komputer untuk memberi tahu Anda:

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

Oh lihat, 5672, dan 15672

Gunakan 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

Oh, lihat 5672.

gunakan 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)

gunakan nmap dari mesin lain, cari tahu apakah 5672 terbuka:

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

Coba sambungkan ke port secara manual dengan telnet, 5671 TUTUP:

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

Coba sambungkan ke port secara manual dengan telnet, 5672 TERBUKA:

telnet localhost 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Periksa firewall Anda:

sudo cat /etc/sysconfig/iptables  

Ini akan memberi tahu Anda port apa yang dibuat terbuka:

-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT

Terapkan kembali firewall Anda:

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  ]
Eric Leschinski
sumber
1
Jawaban yang sangat bagus. Jika ada, Anda sedikit berlebihan.
Darth Egregious
Jika ada yang bertanya-tanya - secara default rabbitmq hanya akan mengikat port 4369 ke antarmuka yang Anda tentukan di dalam rabbitmq-env.conf; Jika Anda ingin mengizinkan semua lalu lintas yang berhubungan dengan rabbitmq melalui antarmuka yang ditentukan (seperti saya - melalui tautan openvpn khusus) maka Anda harus mengonfigurasi rabbitmq untuk meneruskan semua lalu lintas lain melalui antarmuka itu di dalam rabbitmq.conf (jika tidak, port lain tidak akan terikat ke antarmuka pilihan Anda, tetapi akan mendengarkan di semua port)
Greg0ry
15

Untuk mengetahui port apa yang digunakan kelincimq :

$ epmd -names

Keluaran:

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

Jalankan ini sebagai root:

lsof -i :4369
lsof -i :25672

Selengkapnya tentang opsi epmd.

Mick
sumber
lsofsangat lambat ... dan itu membutuhkan hak akses root. Anda dapat melakukan hal yang sama, jauh lebih cepat, dengannetstat -an | egrep '\.(4369|25672).*LISTEN'
dland
apakah itu benar-benar membutuhkan root? Saya bisa menjalankannya dengan baik sebagai pengguna biasa. Mungkin ada yang berubah di versi terbaru?
asgs
8

Akses Pelabuhan

Firewall dan alat keamanan lainnya dapat mencegah RabbitMQ mengikat ke port. Jika itu terjadi, RabbitMQ akan gagal dimulai. Pastikan port berikut dapat dibuka:

4369: epmd, layanan penemuan rekan yang digunakan oleh node RabbitMQ dan alat CLI

5672, 5671: digunakan oleh klien AMQP 0-9-1 dan 1.0 tanpa dan dengan TLS

25672: digunakan oleh distribusi Erlang untuk komunikasi alat antar-node dan CLI dan dialokasikan dari rentang dinamis (dibatasi ke satu port secara default, dihitung sebagai port AMQP + 20000). Lihat panduan jaringan untuk detailnya.

15672: klien HTTP API dan rabbitmqadmin (hanya jika plugin manajemen diaktifkan)

61613, 61614: klien STOMP tanpa dan dengan TLS (hanya jika plugin STOMP diaktifkan)

1883, 8883: (Klien MQTT tanpa dan dengan TLS, jika plugin MQTT diaktifkan

15674: klien STOMP-over-WebSockets (hanya jika plugin Web STOMP diaktifkan)

15675: klien MQTT-over-WebSockets (hanya jika plugin MQTT Web diaktifkan)

Dokumen referensi: https://www.rabbitmq.com/install-windows-manual.html

kode5
sumber