MQTT Broker niet intern benaderbaar, router settings?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Ik heb Mosquitto MQTT broker geïnstalleerd op mijn Windows 10 server.
De MQTT broker draait, en vanaf een lokale MQTT cliënt op dezelfde machine kan ik verbinding maken met de broker.

Extern (binnen hetzelfde netwerk) lukt dit niet.
Ik heb reeds een regel aangemaakt in mijn Windows firewall waarbij ik heb aangegeven dat alle inkomende en uitgaande data op poort 1883 is toegestaan.

Mijn router is een Ubiquiti Unifi USG.
Alle apparaten in mijn netwerk zijn voorzien van een Static IP adres en zitten in hetzelfde subnet (192.168.1.xxx).

Heb het idee dat de router de communicatie tegen houdt.
Kan ik dit controleren? Zijn er instellingen die ik in de router moet aanpassen om in het gehele netwerk communicatie over poort 1883 toe te staan?

Beste antwoord (via nils_vdg op 17-05-2021 07:03)


  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 29-09 09:24
Als je FTP server het wel doet dan ligt het niet aan Unifi. En als je de FTP server kunt bereiken vanaf een andere Windows PC, dan ligt het ook niet aan de netwerkinstellingen.

Ik zou het eens proberen met de Windows firewall uitgeschakeld op de server. Aangezien het blijkbaar applicatie-specifiek is. Misschien ook de configuratie van MQTT controleren of hij wel van buiten de server benaderd kan worden. Ik draai die van mij op een Pi en daar waren geen problemen.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Vloris
  • Registratie: December 2001
  • Laatst online: 09:30
Een router routeert van het ene netwerk naar het andere.
Binnen hetzelfde netwerk doet die dus helemaal niets met je verkeer, lijkt me dus niet het probleem gezien je omschrijving.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Andere tips waar het in kan zitten zijn ook welkom.
Firewall compleet uitschakelen in Windows maakt in ieder geval geen verschil.

Acties:
  • 0 Henk 'm!

  • Powergrim
  • Registratie: Mei 2007
  • Laatst online: 30-09 20:27
Hoe staat je broker ingesteld? Accepteert deze wel verkeer als deze buiten je persoonlijke range valt? Wat ik sowieso zou voorstellen is om NOOIT een MQTT broker op 1883 met een simpel username/pw naar buiten te routeren. Zorg er voor dat je een encrypted MQTT broker opzet met een certificaatje, en ben heel selectief met de apparaten die je laat connecten. Voor je het weet ligt de hele messagestroom van je Domotica op straat.

Acties:
  • 0 Henk 'm!

  • MarcoC
  • Registratie: September 2003
  • Laatst online: 10:54
Wellicht luistert de broker alleen op 127.0.0.1 en niet op 0.0.0.0. Dan kan je nooit van buitenaf je MQTT broker benaderen.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Voorlopig heb ik nog vrij weinig opgezet, dus er vindt nog helemaal geen communicatie plaats omdat geen enkele externe cliënt met de broker kan verbinden.

Enige wat ik tot zo ver heb ingesteld is dat anonymous inloggen is uitgezet, en dat ik het wachtwoord wat benodigd is om in te loggen versleuteld heb. Verder geen certificaten oid ingesteld. Mn broker config file bestaat dus uit slechts 2 regels. Dat is meer iets voor een volgende stap als ik überhaupt een verbinding tot stand kan krijgen.

Externe communicatie buiten mijn eigen netwerk is voorlopig nog niet nodig.

Ik heb overigens ook geprobeerd te verbinden zonder wachtwoord en met anonymous inlog toegestaan, maar dat maakt ook geen verschil. Nog steeds is de broker niet te benaderen vanaf een ander apparaat in hetzelfde netwerk.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
En sorry, maar met extern bedoel ik eigenlijk een ander apparaat binnen mijn eigen netwerk.
"Extern" is voorlopig (nog) niet van toepassing.

Ik kan de broker niet benaderen vanaf een ander apparaat in hetzelfde netwerk

Acties:
  • 0 Henk 'm!

  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 29-09 09:24
Unify heeft de mogelijkheid om apparaten van elkaar te isoleren. Ga in de instellingen van je USG naar je LAN netwerk, edit network, klik op advanced. Daar staat een knopje Device Isolation, dat zet je uit.

Als dat niet het probleem is, dan kan het nog zijn dat je Windows Firewall toch de inkomende verbinding tegenhoudt. Dat is het geval als Windows het netwerk als 'public' beschouwt. Dat is nog best lastig aan te passen in Windows 10. Ga naar de Group Policy Editor (gpexit.msc), bij computer configuration klik je Windows settings open, dan Security settings, dan Network List Manager policies. Als het goed is zie je dan een lijst met netwerken. Dubbelklik op het netwerk waarmee je verbonden bent. Klik vervolgens op het tabblad Network Location en kies daar voor Private. Alles weg-applyen en sluiten en het zou opgelost moeten zijn.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Via gpedit.msc > netwerklocatie kan ik kiezen voor "niet geconfigureerd", "particulier", of "openbaar".
Hier op particulier gezet (stond op "niet geconfigureerd").

Dit gaf geen verschil (kan de broker nog steeds niet benaderen)..
Overigens heb ik ook een FTP server en een (PLEX) media server op dit systeem draaien die beiden gewoon zonder problemen vanaf mijn netwerk te bereiken zijn.

In de Unifi Controller kan ik geen settings vinden voor Device Isolation. Als ik google op device isolation zie ik alleen tutorials hoe je een compleet tweede netwerk kan aanmaken om een netwerk af te schermen, maar ik zie geen specifieke optie device isolation. Maar waarschijnlijk is dit ook niet het probleem gezien de media en FTP server het ook gewoon doen.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Als ik mn server ping vanaf een andere windows pc dan lukt dit zonder problemen.
Als ik via telnet probeer specifiek poort 1883 te pingen dan krijg ik een error.

Afbeeldingslocatie: https://tweakers.net/i/Lfhktgsoq7enqmHO0Pkf1ejSbS4=/800x/filters:strip_icc():strip_exif()/f/image/i4Nwp9T9rXGRTaRE7Oe3kHvF.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
nils_vdg schreef op zondag 16 mei 2021 @ 12:33:
Als ik mn server ping vanaf een andere windows pc dan lukt dit zonder problemen.
Als ik via telnet probeer specifiek poort 1883 te pingen dan krijg ik een error.

[Afbeelding]
Dan luistert MQTT niet op die poort. Dat komt hoogst waarschijnlijk omdat hij alleen luistert op 127.0.0.1 of op een ander ip adres dan 192.168.1.77.

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 29-09 09:24
Als je FTP server het wel doet dan ligt het niet aan Unifi. En als je de FTP server kunt bereiken vanaf een andere Windows PC, dan ligt het ook niet aan de netwerkinstellingen.

Ik zou het eens proberen met de Windows firewall uitgeschakeld op de server. Aangezien het blijkbaar applicatie-specifiek is. Misschien ook de configuratie van MQTT controleren of hij wel van buiten de server benaderd kan worden. Ik draai die van mij op een Pi en daar waren geen problemen.

Acties:
  • 0 Henk 'm!

  • rens-br
  • Registratie: December 2009
  • Laatst online: 08:08

rens-br

Admin IN & Moderator Mobile
Kleine titlefix op basis van extern / intern.


Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Probleem is opgelost! Zat in de settings van de Mosquitto MQTT broker.

Ik moest zelf de communicatie-poort doorgeven in de config file. Dat stond niet in de tutorial die ik had gevolgd omdat dit bij de oudere versie van Mosquitto niet nodig was.. maar het werkt nu!

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
[
Probleem is opgelost!
Ben toch wel benieuwd wat je nou specifiek hebt aangepast, want ik heb denk ik hetzelfde probleem. Ben nu al 2 dagen met dit issue bezig! Heb op 2 pc's binnen mijn netwerk zowel MQTT explorer als Mosquitto geinstalleerd. Zolang ik met MQTT Explorer verbinding maak met de lokale Mosquitto gaat dat prima (op basis van username en wachtwoord, (dus met instelling "listener 1883" en "allow_anonymous false")

Maar als ik niet met de lokale mosquitto wil verbinden maar met die op de andere laptop krijg ik geen verbinding. In beide laptops heb ik een firewall regel toegevoegd dat inbound TCP port 1833 toegestaan is (alleen op private en domain, geen public)

Ik heb werkelijk geen idee meer waar ik die moet zoeken.

Acties:
  • +1 Henk 'm!

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Herbiek616 schreef op woensdag 23 maart 2022 @ 23:58:
[...]
Ik heb werkelijk geen idee meer waar ik die moet zoeken.
Klinkt alsof @MarcoC het bij het rechte eind had

QnJhaGlld2FoaWV3YQ==


Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Herbiek616 schreef op woensdag 23 maart 2022 @ 23:58:
[...]


Ben toch wel benieuwd wat je nou specifiek hebt aangepast, want ik heb denk ik hetzelfde probleem. Ben nu al 2 dagen met dit issue bezig! Heb op 2 pc's binnen mijn netwerk zowel MQTT explorer als Mosquitto geinstalleerd. Zolang ik met MQTT Explorer verbinding maak met de lokale Mosquitto gaat dat prima (op basis van username en wachtwoord, (dus met instelling "listener 1883" en "allow_anonymous false")

Maar als ik niet met de lokale mosquitto wil verbinden maar met die op de andere laptop krijg ik geen verbinding. In beide laptops heb ik een firewall regel toegevoegd dat inbound TCP port 1833 toegestaan is (alleen op private en domain, geen public)

Ik heb werkelijk geen idee meer waar ik die moet zoeken.
Bij mij werkte het toen ik het bestand had aangepast wat je (afhankelijk van installatie dir) vindt in: C:\Program Files\mosquitto\mosquitto.conf

Het ging daarbij uiteindelijk alleen om de regel "listner 1883" die gespecificeerd moest worden.
De verwijzing naar het password file staat er alleen in omdat ik een encrypted password gebruik.
Verder heb ik in mijn router/firewall niks geforward of open gezet op poort 1883, omdat ik dus wil dat hij vanaf extern (buiten mijn netwerk) niet te benaderen is.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
# Config file for mosquitto
#
# See mosquitto.conf(5) for more information.
#
# Default values are shown, uncomment to change.
#
# Use the # character to indicate a comment, but only if it is the
# very first character on the line.


allow_anonymous false
password_file X:/xxx/xxx/xxx
listener 1883

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
Dat ziet er bij mij ook allemaal precies hetzelfde uit. Die Listener 1883 had ik er dus ook al in staan.

Sinds vanmorgen merk ik trouwens dat ik vanaf PC 1 wel kan connecten (en payloads kan publiceren) met Mosquitto broker op PC 2, maar andersom gaat (nog) niet.

Heb de mosquitto.conf file van de PC die ik kan benaderen gekopieerd naar de andere PC en de mosquitto service herstart, maar geen verandering in gedrag. Beide PC's zitten in een hetzelfde domain en ben als dezelfde user ingelogd. Ook is de zelfde inbound poort 1883 vrijgegeven op beide PC's.

Krijg het idee dat dit allemaal toch buiten de instellingen van mosquitto afspeelt, ergens rond lokale firewall instellingen.

Acties:
  • 0 Henk 'm!

  • nils_vdg
  • Registratie: November 2002
  • Laatst online: 03-09 08:56
Dan even checken of je tussen die pc's kan pingen op poort 1883.

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
nils_vdg schreef op donderdag 24 maart 2022 @ 10:25:
Dan even checken of je tussen die pc's kan pingen op poort 1883.
Pingen lukt wel, maar hoe ping je specifiek op poort 1883?

Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 26-09 22:38
Herbiek616 schreef op donderdag 24 maart 2022 @ 10:29:
[...]

Pingen lukt wel, maar hoe ping je specifiek op poort 1883?
Dat kan niet. ping is icmp dat is een ander protocol ;)

Je kunt wel proberen met netcat of een telnet client te verbinden naar port 1883. Ik vermoed dat mosquitto alleen op localhost luistert. Overigens, heb je na config aanpassingen de daemon wel herstart?

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
... en de mosquitto service herstart
Ja dus.. ik ga ff met telnet stoeien..

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
Verbinden opzetten van PC 1 met commando telnet <ipadres PC2> 1883 gaat goed. Wel lang wachten maar uiteindelijk krijg ik een zwart scherm met de melding "Press any key to continue..."

Andersom van PC2 naar PC1 (met telnet <ipadres PC1> 1883 geeft na een tijdje de melding "Connecting To <IP adres PC1> ...Could not open connection to the host, on port 1883: Connect failed

Dus moet het idd zoeken instellingen van firewall, maar heb voor beide PC's inbound port 1883 open gezet voor alle IP adressen (voor domain en private netwerk).

Als iemand nog een idee heeft wat ik nog meer kan testen/nakijken hoor ik het graag

Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 26-09 22:38
Herbiek616 schreef op donderdag 24 maart 2022 @ 11:03:
Verbinden opzetten van PC 1 met commando telnet <ipadres PC2> 1883 gaat goed. Wel lang wachten maar uiteindelijk krijg ik een zwart scherm met de melding "Press any key to continue..."

Andersom van PC2 naar PC1 (met telnet <ipadres PC1> 1883 geeft na een tijdje de melding "Connecting To <IP adres PC1> ...Could not open connection to the host, on port 1883: Connect failed

Dus moet het idd zoeken instellingen van firewall, maar heb voor beide PC's inbound port 1883 open gezet voor alle IP adressen (voor domain en private netwerk).

Als iemand nog een idee heeft wat ik nog meer kan testen/nakijken hoor ik het graag
Ik ben geen Windows expert, maar met iets als `netstat` kan je vast wel zien welke services op welke porten en welke interfaces luisteren. Als het goed is, moet mosquitto op 0.0.0.0:1883 luisteren

Acties:
  • 0 Henk 'm!

  • Herbiek616
  • Registratie: Juli 2001
  • Laatst online: 08:19
Als het goed is, moet mosquitto op 0.0.0.0:1883 luisteren
Van deze URL heb ik de onderstande commando regel gehaald: http://www.steves-interne...install-mosquitto-broker/

Op PC 1 krijg ik dit te zien:

code:
1
2
3
4
5
C:\Program Files\mosquitto>netstat -a| findstr 1883 | findstr LISTEN
  TCP    0.0.0.0:1883           <naam PC1>:0       LISTENING
  TCP    [::]:1883              <naam PC1>:0       LISTENING

C:\Program Files\mosquitto>


Op PC 2 krijg ik dit te zien:

code:
1
2
3
4
5
C:\Program Files\mosquitto>netstat -a| findstr 1883 | findstr LISTEN
  TCP    0.0.0.0:1883           <naam PC2>:0       LISTENING
  TCP    [::]:1883              <naam PC2>:0       LISTENING

C:\Program Files\mosquitto>


Identiek dus, maar toch kan PC 1 wel verbinding maken met PC2, maar niet andersom 8)7 (via mqqt dan, normale imcp ping gaat prima)
Pagina: 1