Forutsetninger
Trinn én: Installer Mosquitto Broker
Trinn to: Installer klientene og test
Trinn tre: Sikre med et passord
Konklusjon
MQTT er en publiserings-/ abonnermodellbasert , «lett» meldingsprotokoll over TCP/IP for kommunikasjon mellom «tingenes internett»-enheter som ESP8266, Raspberry Pi osv. Den er veldig populær med lite ressurser og batteridrevne applikasjoner som hjemme automasjon, trygghetsalarmsystemer og batteridrevne sensornettverk.
Mosquitto er en åpen kildekode-meldingsmegler (eller server) som implementerer MQTT-protokoller. Med sin gode fellesskapsstøtte, dokumentasjon og enkle installasjon har den blitt en av de mest populære MQTT-meglerne.
Forutsetninger
- En Ubuntu 16.04-server med
roottilgang
- Åpne porten
TCP:1883på brannmuren
Trinn én: Installer Mosquitto Broker
Oppdater Ubuntus pakkeliste og installer den nyeste Mosquitto Broker som er tilgjengelig fra den
sudo apt-get update
sudo apt-get install mosquitto
Mosquitto-tjenesten starter etter installasjon.
Trinn to: Installer klientene og test
Installer MQTT-klienter
sudo apt-get install mosquitto-clients
Mosquitto-klienter hjelper oss enkelt å teste MQTT gjennom et kommandolinjeverktøy. Vi vil bruke to kommandovinduer, ett for å abonnere på et navngitt emne "test"og ett for å publisere en melding til det.
Emner er etiketter som brukes av megleren for å filtrere meldinger for hver tilkoblet klient. Et klientprogram som abonnerer på et emne "Home1/BedroomTemp"vil kun lytte til meldinger publisert til samme emne av andre klienter.
Abonner på emnet "test"
mosquitto_sub -t "test"
Mosquito_suber en abonnementsklient vi installerte i forrige kommando. Her spesifiserer vi " -t" etterfulgt av et emnenavn.
Publiser en melding til emnet "test"
Logg på terminalen som en andre instans og publiser en melding til "test"emnet.
mosquitto_pub -m "message from mosquitto_pub client" -t "test"
Her blir tilleggsparameteren " –m" fulgt av meldingen vi ønsker å publisere. Trykk på " Enter" og du skal se en melding fra mosquitto_pub clientvist i en annen terminal der mosquito_sub clientkjører.
Trinn tre: Sikre med et passord
Mosquitto kommer med et passordfilgenereringsverktøy kalt mosquitto_passwd.
sudo mosquitto_passwd -c /etc/mosquitto/passwd dave
Password: password
Lag en konfigurasjonsfil for Mosquitto som peker på passordfilen vi nettopp har opprettet.
sudo nano /etc/mosquitto/conf.d/default.conf
Dette vil åpne en tom fil. Lim inn følgende i den.
allow_anonymous false
password_file /etc/mosquitto/passwd
Lagre og avslutt tekstredigeringsprogrammet med " Ctrl+O", " Enter" og " Ctrl+X".
Start nå Mosquitto-serveren på nytt og test endringene våre.
sudo systemctl restart mosquitto
I vinduet for abonnementsklient, trykk " Ctrl+C" for å avslutte abonnementsklienten og starte den på nytt med følgende kommando.
mosquitto_sub -t "test" -u "dave" -P "password"
Legg merke til den store -P her .
Prøv å publisere en melding uten passord i publiseringsklientvinduet.
mosquitto_pub -t "test" -m "message from mosquitto_pub client"
Meldingen vil bli avvist med følgende feilmelding.
Connection Refused: not authorised.
Error: The connection was refused.
Publiser nå en melding med usernameog password.
mosquitto_pub -t "test" -m "message from mosquitto_pub client" -u "dave" -P "password"
Trykk " Enter" og du vil se meldingen i abonnementsklientvinduet, som i trinn to.
Konklusjon
Vi har nå satt opp en passordbeskyttet MQTT-server. Du kan bruke den offentlige IP-en til Ubuntu-serveren din som en MQTT-megler for prosjektene dine.