Mam na komputerze dwie maszyny, postawione na wirtualbox: Linux Mint i CentOS8 jako serwer.
Na CentOS uruchomiłem activeMQ, niestety z poziomu Minta nie mogę połączyć się z jego konsolą.
Z Minta na CentOS bez problemu robię ssh, ping działa, zrobiłem nawet tunel do tej usługi: ssh -nNT -L 8161:localhost:8161 admin@10.0.2.20
I to zadziałało. Udało mi się dobić na adres: http://localhost:8161/admin/topics.jsp
Gdzie mogłem zrobić błąd w konfiguracji? Wyłączyłem firewall na centos, maszyny znajdują się w sieci NAT.
Zgaduję. Jest firewall na CentOS8 z otwartym jedynie portem SSH? W takiej sytuacji można tunelować dowolny port po tak naprawdę wszystko idzie przez 22, dlatego przez tunel działa. Zobacz czy tak systemctl status firewalld i ewentualnie wyłącz systemctl stop firewalld, zobacz czy coś zmieni. Jak tak to dodaj port activeMQ do dozwolonych.
Jeżeli nie firewall to może activeMQ (akurat nie znam) ma gdzieś ustawione, że można łączyć się tylko z localhost. Tunelowany port przychodzi z localhost.
Z tego co widzę, to usługa nasłuchuje jedynie na loopback tj 127.0.0.1 (w tym przypadku tylko na IPv6, więc dobrze że zmieniłeś na tcp i tak zostaw, chyba że łączysz się po IPv6)
Dlatego gdy tunelujesz port przez SSH to działa, bo połączenie nawiązuje się lokalnie za pośrednictwem lokalnie uruchomionego SSH. Natomiast gdy starasz się połączyć poprzez swój interfejs sieciowy tj enp0s3 na IP 10.0.2.20 to nie działa, ponieważ usługa nie nasłuchuje na tym interfejsie.
Prosty test. Zrób na CentOS nmap 127.0.0.1 -p 8161 oraz nmap 10.0.2.20 -p 8161. Ten pierwszy zwróci działającą usługę a ten drugi powie, że na tym porcie nic nie ma. Musisz poczytać dokumentację activeMQ i dowiedzieć się jak zrobić, żeby ten nasłuchiwał np na wszystkich interfejsach (0.0.0.0:port w netstat).
Możesz to zobaczyć na przykładzie np SSH. Możesz do CentOS zalogować się po SSH tylko dlatrego że SSH słucha domyślnie na wszystkim, w tym Twoim enp0s3/10.0.2.20
Zrób test z powyższymi przykładami nmap ale sprawdź SSH (port 22). Zobacz też jak SSH prezentuje się w netstat.
Cieszę się, że problem rozwiązany Z tego co widzę to jest jeszcze kilka narzędzi, które tu nazywają się “External Web Consoles” https://activemq.apache.org/web-console (na dole strony). One pewnie łączą się do portu 61616 ActiveMQ, który zakładam, że domyślnie słucha na wszystkich interfejsach https://activemq.apache.org/getting-started -> Listenport.
To co robiłeś na początku, czyli tunelowanie portu przez SSH to też bardzo dobre rozwiązanie w przypadku gdy serwer wystawiony jest do Internetu. Gdyby ktoś chciał wykorzystać jakąś lukę w konsoli i się włamać, to nie będzie mógł. Nawet nie rozpocznie połączenia bo konsola nie słucha na interfejsie przez który serwer podłączony jest do świata. Za to dla Ciebie konsola będzie dostępna poprzez przetunelowany port. Wszystko dzięki temu, że słucha ona tylko na 127.0.0.1.
Myślałem że to jakiś problem z konfiguracją os’a itp, ponieważ kiedyś jak zainstalowałem activemq na innej maszynie, to bez problemu połączyłem się webgui- widać w między czasie zmienili to .