Installation et utilisation du service moustique sous linux (guide d'évitement des fosses)

Mosquitto est un serveur de courtage de messages MQTT open source. MQTT est un protocole de messagerie léger basé sur la publication/l'abonnement. L'installation et l'utilisation du moustique sont relativement simples, et il est pratique d'effectuer quelques tests.

introduction au moustique

Caractéristiques du Mosquito :

1. Léger : Mosquitto est un serveur proxy MQTT léger, son objectif de conception est de fournir une livraison de messages efficace, rapide et fiable, adaptée aux applications de toutes tailles.

2. Facile à déployer : Mosquitto est très facile à installer et à déployer, et peut fonctionner sur plusieurs plates-formes, notamment Linux, Windows, macOS, etc.

3. Sécurité : Mosquitto prend en charge la communication cryptée basée sur TLS/SSL, qui peut protéger la sécurité et la confidentialité des messages. Dans le même temps, il prend également en charge l'authentification basée sur le nom d'utilisateur et le mot de passe, et la liste de contrôle d'accès (ACL) pour restreindre l'accès.

4. Évolutivité : Mosquitto prend en charge plusieurs connexions client et plusieurs abonnements thématiques, ce qui peut répondre aux besoins des applications à grande échelle.

Installation sous Ubuntu

Méthode 1 : installation du code source

télécharger moustique

Site officiel : https://mosquitto.org/

Adresse source : https://mosquitto.org/files/source/mosquitto-2.0.9.tar.gz

L'avantage est que vous pouvez spécifier arbitrairement la version requise. Mais c'est un peu gênant, vous devez le compiler et l'utiliser vous-même. Si vous devez ajouter un service, vous devez également le configurer vous-même.

cd /home/test
wget --no-check-certificate https://mosquitto.org/files/source/https://mosquitto.org/files/source/mosquitto-2.0.9.tar.gz

// 编译、安装
cd mosquitto-2.0.9
make
sudo make install

Méthode 2 : Installer directement

L'avantage est qu'il est simple et pratique, mais la version ne peut pas être choisie librement par vous, mais la version ne doit pas être trop ancienne.La version par défaut sous Ubuntu 18 doit être la version 2.0 ou supérieure.

sudo apt-get install mosquitto

Par défaut, seul le service mosquitto est installé ci-dessus, sans les outils clients de test mosquitto_sub et mosquitto_pub. Si besoin, vous pouvez installer :

sudo apt-get install mosquitto-clients

la gestion des services

service --status-all

Il affichera la liste complète des services sur Ubuntu. Si le système est des versions Ubuntu 18.04, Ubuntu 20.04 et Ubuntu 22.04 ou supérieures, il est recommandé d'utiliser l'utilitaire Systemd systemctl pour démarrer, arrêter ou redémarrer les services. Les versions antérieures peuvent utiliser la commande service pour démarrer/arrêter/redémarrer le service.

serviceest une commande de gestion de service plus ancienne utilisée sur les distributions Linux compatibles avec le système d'initialisation System V. Il peut démarrer, arrêter, redémarrer ou interroger l'état des services système. Lors de l'utilisation sudo servicede la commande, vous devez spécifier le nom du service, par exemple sudo service apache2 stoparrêtera le serveur Apache. sudo systemctlest une nouvelle commande de gestion des services pour les distributions Linux compatibles avec le système Systemd, telles que les versions récentes d'Ubuntu, Fedora et CentOS. Il offre plus de fonctionnalités et de flexibilité.

Alternativement, les services peuvent être démarrés, arrêtés ou redémarrés à l'aide de scripts d'initialisation dans le répertoire /etc/init.d. Ce répertoire contient en fait divers scripts pour différents services. Si vous utilisez :

/etc/init.d/mosquitto  start

Depuis qu'Ubuntu est passé à Systemd, les scripts d'initialisation sont obsolètes.

systemctlDémarrez le service anti-moustiques :

sudo systemctl stop mosquitto

Arrêtez le service anti-moustiques :

sudo systemctl start mosquitto

Pour redémarrer le service Mosquitto :

sudo systemctl restart mosquitto

Vérifiez l'état du service anti-moustiques :

sudo systemctl status mosquitto

Guide d'évitement des fosses

Après une installation et un démarrage réussis, j'ai constaté que le réseau externe n'est pas accessible avec succès et que le pare-feu a également libéré le port 1883, mais je ne peux toujours pas accéder au port 1883. Pourquoi ne puis-je pas me connecter au serveur moustique sous Linux ?

La raison en est que le service mosquitto sur Ubuntu est en mode local uniquement par défaut.Lorsque vous utilisez sudo service mosquitto start puis sudo service mosquitto status, vous ne pouvez pas voir dans quel mode le serveur actuel fonctionne.Vous pouvez le voir quand vous utilisez la commande moustique -v Le phénomène suivant :

insérez la description de l'image ici

Il existe un moyen plus simple de résoudre ces problèmes. Il s'agit de vérifier quels ports sont ouverts sous le système Linux et l'utilisation des ports.

Utilisez la commande netstat, par exemple :

netstat -ntpl

127.0.0.1Il s'agit d'une adresse de bouclage IPv4, également appelée adresse de bouclage locale. Il pointe vers l'interface réseau de l'hôte local, qui est utilisée pour accéder à ses propres services et applications sur l'hôte local. Les services commençant par de telles adresses ne sont accessibles que localement. 0.0.0.0est une adresse générique, représentant n'importe quel hôte. Lorsqu'un service est lié à 0.0.0.0, il écoute les connexions entrantes sur toutes les interfaces réseau disponibles, ce qui signifie que le service est accessible depuis n'importe quelle adresse. Sous Linux, :::et ::1sont deux représentations de l'adresse de bouclage IPv6, utilisées pour représenter l'hôte local.

Solution

Modifiez directement les fichiers /etc/mosquittodans le répertoire mosquitto.conf, ouvrez le port et l'adresse qui autorise l'accès.

# 设置允许匿名连接,如果禁止匿名连接,则需要配置账号、密码连接
allow_anonymous true

# mqtt 协议配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1883 0.0.0.0
socket_domain ipv4
protocol mqtt

tester l'utilisation

abonnez-vous aux nouvelles

# 无密码
mosquitto_sub -t test1
# 有密码
mosquitto_sub -u yang -P abc123 -t test1

faire une annonce

# 无密码
mosquitto_pub -t test1 -m "发布的内容"
# 有密码
mosquitto_pub -u yang -P abc123 -t test1 -m "发布的内容"

téléchargement du client mqtt

Sous Windows, l'outil client mqtt couramment utilisé est MQTTX.

Adresse de téléchargement de l'outil :

https://github.com/emqx/MQTTX/releases/latest

 configuration du mot de passe

 L'installation par défaut de moustique n'active pas les mots de passe, il est préférable d'activer l'authentification par mot de passe pour une utilisation formelle.

Configurez le mot de passe du compte moustique :

# 使用-c 参数会导致清空密码文件,重新插入用户
mosquitto_passwd -c pwfile.example 用户名

# 不使用-c 表示追加用户,不影响旧用户
mosquitto_passwd  pwfile.example 用户名

Après la configuration ci-dessus, le fichier de configuration de mot de passe pwfile.example sera généré dans le répertoire /etc/mosquitto/ par défaut sous Linux. Vous pouvez également spécifier le chemin du pwfile à générer, en utilisant le formulaire suivant :

mosquitto_passwd /etc/mosquitto/pwfile.example 用户名

修改/etc/mosquittoFichiers dans le répertoire mosquitto.confavec mot de passe activé.

# 设置是否允许匿名连接,如果禁止匿名连接,则需要配置账号、密码连接
allow_anonymous true

# 密码文件路径,禁止匿名连接配置,允许匿名则不用配置
password_file /etc/mosquitto/pwfile.example

# mqtt 协议配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1883 0.0.0.0
socket_domain ipv4
protocol mqtt

# ipv6
listener 1883 ::
socket_domain ipv6
protocol mqtt

# webscoket 协议配置,如果有的话需要配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1884 0.0.0.0
protocol websockets
socket_domain ipv4

listener 1884 ::
protocol websockets
socket_domain ipv4

# 允许的最大连接数,-1表示没有限制
max_connections -1

Enfin, redémarrez le service moustique pour que la modification du fichier de configuration prenne effet.

sudo systemctl restart mosquitto

Autres courtiers MQTT

Outre Mosquitto, il existe d'autres serveurs proxy MQTT open source et gratuits parmi lesquels choisir.

Y compris, mais sans s'y limiter, les éléments suivants :

1. Eclipse Mosquitto : Eclipse Mosquitto est une branche de Mosquitto, qui fournit plus de fonctions et d'améliorations, telles que de meilleures performances, des options de configuration plus riches, etc.

2. EMQX : EMQ X est un serveur proxy MQTT et MQTT-SN hautes performances et évolutif, qui prend en charge plusieurs protocoles et fonctions, tels que MQTT, MQTT-SN, CoAP, LwM2M, etc.

3. HiveMQ : HiveMQ est un serveur proxy MQTT axé sur la fiabilité et l'évolutivité, qui fournit des fonctions telles que la haute disponibilité et l'équilibrage de charge.

4. RabbitMQ : RabbitMQ est un serveur de courtage de messages à usage général qui prend en charge plusieurs protocoles et modes de messagerie, notamment AMQP, MQTT, etc.

5. Aedes : Aedes est un serveur de courtage de messages MQTT léger basé sur JavaScript.

Plus d'introduction : https://www.cnblogs.com/zhaojinhui/p/16790989.html

Ces serveurs proxy MQTT ont leurs propres caractéristiques et scénarios applicables, et vous pouvez choisir celui qui convient en fonction de vos besoins.

autres ressources

Linux construit un serveur MQTT (moustique) et l'utilise

Linux construit un serveur MQTT (moustique) et l'utilise

Vérification de sécurité Baidu

https://wenku.csdn.net/answer/138aada39619ea890fc382855cc37e54

Construction et configuration du serveur Mosquitto_Configuration Mosquitto_Blog de Fat Tao-Blog CSDN

Construction et configuration de Mosquitto_mosquitto.conf_Blog de physique quantique-Blogue CSDN

Installez Mosquitto et ouvrez Websockets sous Linux

Présentation et déploiement de RabbitMQ (explication super détaillée)_blog du serveur rabbitmq_char1otte-blog CSDN

RabbitMQ : messagerie et streaming faciles à utiliser et flexibles — RabbitMQ

Comment télécharger et installer RabbitMQ

Installation et déploiement de RabbitMQ - super détaillé ~

Discussion sur le protocole de transmission de l'Internet des objets MQTT-UinIO.com Blog sur les technologies électroniques

Installation et déploiement de RabbitMQ - super détaillé ~

Pratique de programmation de scripts Bash Shell - UinIO.com Blog sur les technologies électroniques

Démarrage rapide de GNU Make à CMake - UinIO.com Electronic Technology Blog

Nodejs construit rapidement un serveur MQTT_aedes Blog de mqtt_qczxl520

EMQX Enterprise Edition : plate-forme d'accès MQTT IoT de niveau entreprise

Serveur MQTT_Hongmengdao Blog-CSDN Blog

Je suppose que tu aimes

Origine blog.csdn.net/qq8864/article/details/131607972
conseillé
Classement