MQTT Server · 6 min read · Oct 31, 2025

So installieren Sie den Mosquitto MQTT-Server auf Ubuntu 22.04

Mosquitto ist eine kostenlose, Open-Source- und leichtgewichtige Serverimplementierung des MQTT-Protokolls. Es ist für alle Geräte konzipiert, von energieeffizienten Einplatinencomputern bis hin zu vollständigen Servern. MQTT arbeitet über dem TCP/IP-Protokoll und nutzt Ihr bestehendes Internet-Heimnetzwerk, um Nachrichten an Ihre IoT-Geräte zu senden und auf diese Nachrichten zu reagieren. Es ist in C geschrieben, was es schneller und effizienter macht als andere MQTT-Broker.

Dieser Beitrag zeigt Ihnen, wie Sie den Mosquitto-Server auf Ubuntu 22.04 installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein Root-Passwort ist auf Ihrem Server konfiguriert.

Installieren Sie die erforderlichen Abhängigkeiten

Bevor Sie beginnen, wird empfohlen, alle Systempakete auf die aktualisierte Version zu aktualisieren und zu upgraden. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

apt update -y  
apt upgrade -y

Nachdem Sie alle Pakete aktualisiert haben, führen Sie den folgenden Befehl aus, um die anderen erforderlichen Pakete zu installieren:

apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -y

Sobald alle erforderlichen Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren Sie den Mosquitto-Server

Standardmäßig ist das Mosquitto-Paket im Standard-Repo von Ubuntu 22.04 nicht verfügbar. Daher müssen Sie das offizielle Repository von Mosquitto zu APT hinzufügen. Sie können es mit dem folgenden Befehl hinzufügen:

add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -y

Sobald das Repository zu APT hinzugefügt wurde, können Sie es mit dem folgenden Befehl installieren:

apt install mosquitto mosquitto-clients -y

Sobald die Installation abgeschlossen ist, können Sie den Status von Mosquitto mit dem folgenden Befehl überprüfen:

systemctl status mosquitto

Sie sollten die folgende Ausgabe sehen:

? mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-12-06 04:50:33 UTC; 8s ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
    Process: 5491 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 5492 ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 5493 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 5494 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
   Main PID: 5495 (mosquitto)
      Tasks: 1 (limit: 2242)
     Memory: 1.3M
        CPU: 23ms
     CGroup: /system.slice/mosquitto.service
             ??5495 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Dec 06 04:50:32 ubuntu2204 systemd[1]: Starting Mosquitto MQTT Broker...
Dec 06 04:50:33 ubuntu2204 systemd[1]: Started Mosquitto MQTT Broker.

Erstellen Sie ein MQTT-Administrationspasswort

Aus Sicherheitsgründen wird empfohlen, die Passwortauthentifizierung für MQTT zu konfigurieren.

Lassen Sie uns einen Admin-Benutzer und ein Passwort mit dem folgenden Befehl einrichten:

mosquitto_passwd -c /etc/mosquitto/passwd hitesh

Legen Sie ein Passwort fest, wie unten gezeigt:

Password: 
Reenter password: 

Als Nächstes bearbeiten Sie die MQTT-Konfigurationsdatei und definieren den Port und die Passwortdatei.

nano /etc/mosquitto/conf.d/default.conf

Fügen Sie die folgenden Zeilen hinzu:

listener 1883
password_file /etc/mosquitto/passwd

Speichern und schließen Sie die Datei, und starten Sie dann den Mosquitto-Dienst neu, um die Änderungen anzuwenden.

systemctl restart mosquitto

So verwenden Sie MQTT zum Senden und Empfangen von Nachrichten

Sie müssen den Mosquitto-Client verwenden, um eine Verbindung zum Mosquitto-Server herzustellen und dann Nachrichten zu verschiedenen Themen zu senden und zu empfangen.

Bevor Sie Nachrichten senden und empfangen, müssen Sie sich für ein Thema anmelden. Sie können eines der folgenden Themen in der Hausautomatisierung verwenden.

  • home/lights/sitting_room
  • home/lights/kitchen
  • home/lights/master_bedroom
  • home/lights/kids_bedroom

Lassen Sie uns den folgenden Befehl ausführen, um sich für das Thema home/lights/kids_bedroom anzumelden.

mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"

Öffnen Sie als Nächstes die neue Terminaloberfläche und veröffentlichen Sie eine Nachricht an das Thema home/lights/kids_bedroom mit dem folgenden Befehl.

mosquitto_pub -u hitesh -P password -m "ON" -t "home/lights/kids_bedroom"

Im ersten Terminal erhalten Sie die ON-Nutzlast:

ON

Gehen Sie jetzt zum zweiten Terminal und senden Sie die OFF-Nachricht zum selben Thema.

mosquitto_pub -u hitesh -P password -m "OFF" -t "home/lights/kids_bedroom"

Sie sollten die folgende Nachricht im ersten Terminal sehen:

ON
OFF

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Sichern Sie Mosquitto mit Let’s Encrypt SSL

Um Mosquitto mit SSL zu sichern, müssen Sie das Certbot-Clientpaket auf Ihrem Server installieren.

Zuerst installieren Sie den Snap-Paketmanager mit dem folgenden Befehl:

apt install snapd

Aktualisieren Sie als Nächstes das Snap-Paket mit dem folgenden Befehl:

snap install core   
snap refresh core

Installieren Sie als Nächstes das Certbot-Paket mit dem folgenden Befehl:

snap install --classic certbot

Erstellen Sie als Nächstes einen symbolischen Link der Certbot-Binärdatei zum Systemstandort.

ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie als Nächstes den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mosquitto.linuxbuz.com

Sie sollten die folgende Ausgabe sehen:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for mosquitto.linuxbuz.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem
This certificate expires on 2023-03-06.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Sie können alle generierten Zertifikatsdateien mit dem folgenden Befehl anzeigen:

ls /etc/letsencrypt/live/mosquitto.linuxbuz.com/

Sie erhalten die folgende Ausgabe:

cert.pem  chain.pem  fullchain.pem  privkey.pem  README

Generieren Sie als Nächstes ein Diffie-Hellman-Zertifikat mit dem folgenden Befehl:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie MQTT zur Verwendung von Let’s Encrypt SSL

Zuerst kopieren Sie alle generierten Zertifikate in das Mosquitto-Verzeichnis mit dem folgenden Befehl:

cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem /etc/mosquitto/certs/server.pem  
cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem /etc/mosquitto/certs/server.key

Setzen Sie als Nächstes die richtigen Berechtigungen für das Mosquitto-Zertifikat.

chown -R mosquitto: /etc/mosquitto/certs

Bearbeiten Sie als Nächstes die Mosquitto-Konfigurationsdatei und definieren Sie das Let’s Encrypt SSL.

nano /etc/mosquitto/conf.d/default.conf

Fügen Sie die folgenden Zeilen hinzu:

listener 8883
certfile /etc/mosquitto/certs/server.pem
cafile  /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem

Speichern und schließen Sie die Datei, und starten Sie dann den Mosquitto-Dienst neu, um die Änderungen anzuwenden.

systemctl restart mosquitto

Überprüfen Sie als Nächstes die Mosquitto-Verbindung mit dem folgenden Befehl:

mosquitto_pub -h mosquitto.linuxbuz.com -t "home/lights/kids_bedroom" -m "hello" -p 8883 --capath /etc/ssl/certs/ -u hitesh -P password

Sobald Sie fertig sind, können Sie die Mosquitto-Verbindung über den Webbrowser testen.

Konfigurieren Sie Mosquitto-Websockets

Als Nächstes müssen Sie Websockets konfigurieren, um das MQTT-Protokoll aus Browsern heraus zu verwenden. Sie können es aktivieren, indem Sie die Standardkonfigurationsdatei von Mosquitto bearbeiten:

nano /etc/mosquitto/conf.d/default.conf

Fügen Sie die folgenden Zeilen hinzu:

listener 8083
protocol websockets
certfile /etc/mosquitto/certs/server.pem
cafile  /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem

Speichern und schließen Sie die Datei, und starten Sie dann den Mosquitto-Dienst neu, um die Änderungen anzuwenden.

systemctl restart mosquitto

Öffnen Sie als Nächstes Ihre Terminaloberfläche und führen Sie den folgenden Befehl aus:

mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"

Öffnen Sie jetzt Ihren Webbrowser und verwenden Sie den browserbasierten MQTT-Client, um die WebSockets-Funktionalität zu testen. Sie sollten den folgenden Bildschirm sehen:

Geben Sie Ihren Mosquitto-Server-Host, Port, Benutzernamen, Passwort ein und klicken Sie auf die Schaltfläche Verbinden. Sie sollten den folgenden Bildschirm sehen:

Geben Sie jetzt ein beliebiges Thema, eine Nachricht ein und klicken Sie auf die Schaltfläche Veröffentlichen.

Gehen Sie als Nächstes zurück zur Terminaloberfläche. Sie sollten Ihre veröffentlichte Nachricht in der folgenden Ausgabe sehen:

Hi

Fazit

In diesem Beitrag haben wir erklärt, wie man den Mosquitto-Server installiert und ihn mit Let’s Encrypt SSL auf Ubuntu 22.04 sichert. Wir haben auch Mosquitto über einen browserbasierten Client getestet. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.