Skocz do zawartości

Pomocna odpowiedź

Napisano

Witam,

connection.thumb.png.865e4f07ac415468643e0d4fcbc520e1.png

Może ktoś zasugerować czemu nie mogę się połączyć z brokerem, który jest zainstalowany na wirtualnej maszynie (system Ubuntu) - serwer Mosquitto. Nie mogę połączyć się za poza "lokalnego" połączenia z zewnątrz przez WIFI. Połączenia próbuje wykonać za pomocą różnych aplikacji na androdzie (np. MyMQTT). Próbowałem także przez wykorzystanie ESP32 i biblioteki MQTT. W żadnym wypadku nie udało mi się połączyć z brokerem. Ustawiłem wyjątek w zaporze dla portu 1883 - bez rezultatu (wyłączyłem całkowicie zapore - również bez efektu). Broker Mosquitto zainstalowałem zamiast na Ubuntu, to na Windows - także podobna sytuacja.

  • Lokalnie Windows oraz Ubuntu widzą serwer i się z nim łączą za pomocą MQTT Explorer.
  • Router jest widoczny w systemie Windows
  • Router widzi urządzenie android, które jest połączone z urządzeniem poprzez transmisje WIFI.
  • Jestem w stanie pingować wszystkie adresy (telefonu z androidem, windowsa czy Ubuntu) i odpowiadają (czasami jest duży ping - 1000ms)
  • Zmieniłem w mosquitto.conf parametry listeners 1883 oraz allow_anny na true.


Czy ktoś może zasugerować rozwiązanie?
Może jakaś aplikacje czy kod/program na ESP32/Android do diagnostyki sieci?
 

(edytowany)

obraz.thumb.png.2d3de40ed4e34c97fccd681d7a912211.png

Screem z MQTT Explorer - Windows i Ubuntu połączył się z MQTT uruchomione na ubuntu.

obraz.thumb.png.627e52e76b94fa1405fa806cb78e66e8.png

Przypadek gdzie nie korzystam z wirutalnej maszyny, a jedynie Windows jako MQTT Serwer.
Pingowanie telefonu:

obraz.thumb.png.3531394877667aabb1114134d5792dc7.png

Router PENTAGRAM widzi telefon

 obraz.thumb.png.698ad52793ecd7656fd5a4438b63549e.png

MQTT Explorer na Windows jestem w stanie połączyć sie do serwera

obraz.thumb.png.8325cdbb9fb806714ab3d222118f8ac3.png

Probuje polaczyc sie z telefonu i jest komunikat Connection Failed. Probuje uzyc IP 192.168.1.101 (ktore dziala na Windows).

Edit:

Sprobowałem podobnie na innym routerze. Niestety efekt ten sam. Jeszcze jedno na co mozna zwrocic uwagę, że jezeli podam zły adres w aplikacji MyMQTT to zgłasza od razu błąd "failed connnection". Jeżeli wpisze poprawny to przetwarza przez dłuższą chwile (5s-10s) i zgłasza błąd.

 

Edytowano przez only

Byłem ciekaw czy nie wisi przypadkiem na 127.0.0.1, ale jest na wszystkich interferjsach (0.0.0.0). Kolejny krok, na dowolnym kliencie, jakikolwiek program pozwalający na nawiązanie połączenia na dowolnym porcie TCP, jak putty albo telnet, spróbuj się połączyć z adresem brokera i jego portem i sprawdź czy połączenie uda się nawiązać czy zwróci błąd (i jaki). To Ci odpowie na pytanie czy chodzi o sieć czy konfiguracje brokera. W wypadku telnetu:

telnet ip 1883

jeśli się uda połączyć dostaniesz cos w rodzaju:

Trying 10.0.0.4...
Connected to 10.0.0.4.
Escape character is '^]'.

A jak nie, to Ci powie co poszło nie tak.

Eeeee, tylko tu się coś nie zgadza. 127.0.0.1 jest adresem loopbacka. On będzie działać jak go użyjesz na tym samym komputerze, na którym jest broker, ale żadnym innym.
Pytanie dodatkowe, maszyna wirtualna jak ma ustawione połączenie internetowe, nat czy bridge?

W sumie dwa warianty. Jezeli serwer jest uruchomiony na ubuntu to kontaktuje sie z serwerem wpisujac adres wirtualnej maszyny 192.168.0.143. Adres wpisuje w windows/cmd/telnet 192.168.0.143 1883

obraz.thumb.png.c546025740c8bfc797aad902926254e7.png

Jezeli uruchomiony serwer na Windows to odpytuje z "lokalnego". Wpisuje w windows/cmd/telnet 127.0.0.1 1883

obraz.thumb.png.a50029f3e3aea2ae4be4fc9e5b98073c.png

Zastanawia mnie jeszcze fakt, dlaczego włącza się wyłącznie w trybie local only mode? W dokumentacji/internet opisują wyłącznie, że należy zmienić na listeners 1883 oraz allow_anny... true

(edytowany)

W sumie się rozwiązało. Serwer startował faktycznie tylko lokalnie. Po wpisaniu w mosquitto.conf wiersza listeners 1883 0.0.0.0 (istotny jest adres) to wystartował już jako "otwarty".

Dzięki za pomoc kaworu.

 

Edytowano przez only

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...