Praktischer Betrieb des Multi-Routing-MQTT-Servers

1. Projekthintergrund

        In einem lokalen Netzwerk gibt es mehrere Gerätegruppen, die Informationen miteinander austauschen müssen. Während verschiedene Geräte ausgetauscht oder gelöscht werden können, bleiben die interne Softwarearchitektur des gesamten LAN und die externen Schnittstellen der einzelnen Gerätesoftware grundsätzlich unverändert. Es scheint, dass das Einzige, was existiert, Routing ist. Ha ha.

        Entwerfen Sie ein Routing-zentriertes Verarbeitungsinformationssystem, das verschiedene Geräte innerhalb des LANs verbinden kann. Jedes Gerät kann über Routing auch mit dem öffentlichen Netzwerk oder übergeordnetem Routing kommunizieren.

2. Arbeits- und Versuchsschritte:

         1) Erstellen Sie eine WLAN-LAN-Route (wählen Sie jedes WLAN6-Modul aus, das viel Wärme erzeugt) und verbinden Sie verschiedene Endgeräte über WLAN, LAN usw. mit der Route.

          2) Das Router-WAN ist mit der Route der oberen Ebene verbunden und 5G wird für die Verbindung mit dem öffentlichen Netzwerk verwendet (warum kann das 5G-Modul jetzt keine feste IP verwenden? Es funktioniert einfach nicht mehr!). Beim Ein- und Ausstecken des WAN-Netzwerkkabels zu unterschiedlichen Zeiten (die mit dem WAN-Netzwerkkabel verbundene Route der oberen Ebene kann auch mit dem öffentlichen Netzwerk verbunden werden) wird die ursprüngliche Route (openwrt lede 17.01) verwendet. Das System ist verwirrt und kann nicht auf das Internet zugreifen. Sie können uhdcpc -i xxx (Ihre Netzwerkkarte wird identifiziert, wenn xxx verwendet wird) verwenden, das mit ifconfig abgerufen werden kann, um das DHCP-DNS auszuwählen, andernfalls können Sie nicht auf das Internet zugreifen.

         3) Bei der Installation des MQTT-Servers auf dem Router muss die Opkg-Quelle ordnungsgemäß verarbeitet werden, da sonst nur sehr wenige Software in der Luci-Schnittstelle verfügbar ist oder diese möglicherweise überhaupt nicht korrekt ist. Sie können die folgende Quelle auswählen, https in http ändern und #option check_signature 1 in der Konfiguration auskommentieren (# voranstellen).

         src/gz reboot_core http://archive.openwrt.org/releases/17.01.7/targets/ramips/mt7621/packages/
        src/gz reboot_base http://archive.openwrt.org/releases/17.01.7/packages/ mipsel_24kc/base/
        src/gz reboot_luci http://archive.openwrt.org/releases/17.01.7/packages/mipsel_24kc/luci/
        src/gz reboot_packages http://archive.openwrt.org/releases/17.01.7/ Pakete/mipsel_24kc/Pakete/

        Nachdem die Quelle eingerichtet ist, können Sie über die Befehlszeile opkg update; opkg install mosquitto mosquitto_client libmosquitto; Das letzte OpenWRT-System sollte mitgeliefert werden und kann installiert werden oder nicht.

        4) Geben Sie mosquitto -c /etc/mosquitoo/mosquitoo.conf -d ein, um den MQTT-Server zu starten. Geben Sie diesen Befehl im Luci-Startskript in „exit(0)“ ein, damit er beim Start des Routings gestartet werden kann. (Ändern Sie das Mosquito.conf-Skript nicht. Ändern Sie dieses Skript nicht, bis der Test abgeschlossen ist. Denken Sie nicht, dass Sie durch Ändern der IP dieses Skripts eine Verbindung zum mqttclient des Routings der oberen Ebene herstellen können. Eine sehr schmerzhafte Lektion )

       5) Richten Sie die Portweiterleitung auf der Luci-Firewall ein und leiten Sie den WAN-Port 1883 an die lokale Routing-IP-Adresse und den Port 1883 weiter. (Dies ist sehr wichtig, da sonst die von der übergeordneten Route getragene Maschine keine Verbindung zum MQTT-Server dieser Route herstellen kann.)

       6) Installieren Sie mosqiuitto_client oder mqtt-Testtools (mqttbox usw.) auf jedem eingebetteten Gerät und führen Sie Tests in verschiedenen Netzwerksegmenten durch. vollständig.

3. Legen Sie das Kontopasswort fest

        Ändern Sie /etc/mosquitto.conf und fügen Sie hinzu  

                        allow_anonymous false

                        Passwortdatei /etc/mosquitto/pwfile

        Berühren Sie dann /etc/mosquitto/pwfile & vi pwfile (pwfile ist eine Datei zum Speichern von Konten und Passwörtern) vi pwfile

                Root hinzufügen: admin (ein Konto wird als Root hinzugefügt und das Passwort lautet admin) Nachdem Sie das Konto und das Passwort in der Testsoftware eingegeben haben, können Sie eine Verbindung herstellen. Unter Ubuntu müssen Sie mosquitto_passwd verwenden, um das Passwort zu generieren. Openwrt verfügt aus irgendeinem Grund nicht über diesen Befehl. Vielleicht liegt es daran, dass im Allgemeinen TLS oder CLI verwendet wird (ich werde es später untersuchen, wenn ich es verwende).

              Verwenden Sie bei der Installation Mosquito_ssl, mosquitto_client_ssl, um mosquitto_passward zu verschlüsseln (es kann nur nosslh und ssl installiert werden).

                   

4. Bemerkungen

        Einige Leute denken, dass mqtt instabil ist, und sagen, dass sie manchmal feststellen, dass sie keine Daten empfangen können. Ich verwende derzeit Mosquitoo Version 3.1 und im Test wurden keine Probleme festgestellt.

        Ich bezweifle, dass diese Abonnementthemen in mosquitto_sub -t '/topic/#+/topic/' überlagert sind. Es gibt eine Einstellung in moquito.cfg. Wenn derselbe Kunde diesem Abonnement beitritt, wird es nur einmal gesendet. Es gibt viele Einstellungen und es dauert lange, sie alle zu verstehen. Fügen Sie nach dem normalen Test die Kontonummer und das Passwort hinzu.

おすすめ

転載: blog.csdn.net/jb_mai/article/details/130268752