Servidor MQTT · 6 min read · Oct 31, 2025
Cómo instalar el servidor Mosquitto MQTT en Ubuntu 22.04

Mosquitto es una implementación de servidor gratuita, de código abierto y ligera del protocolo MQTT. Está diseñado para todos los dispositivos, desde computadoras de placa única de bajo consumo hasta servidores completos. MQTT funciona sobre el protocolo TCP/IP y utiliza su red doméstica de Internet existente para enviar mensajes a sus dispositivos IoT y responder a esos mensajes. Está escrito en lenguaje C, lo que lo hace rápido y más eficiente que otros corredores MQTT.
Esta publicación le mostrará cómo instalar el servidor Mosquitto en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en su servidor.
Instalar dependencias requeridas
Antes de comenzar, se recomienda actualizar y mejorar todos los paquetes del sistema a la versión actualizada. Puede actualizarlos ejecutando el siguiente comando:
apt update -y
apt upgrade -yDespués de actualizar todos los paquetes, ejecute el siguiente comando para instalar los otros paquetes requeridos:
apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -yUna vez que se hayan instalado todos los paquetes requeridos, puede proceder al siguiente paso.
Instalar el servidor Mosquitto
Por defecto, el paquete Mosquitto no está disponible en el repositorio predeterminado de Ubuntu 22.04. Por lo tanto, necesitará agregar el repositorio oficial de Mosquitto al APT. Puede agregarlo con el siguiente comando:
add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -yUna vez que el repositorio se haya agregado a APT, puede instalarlo con el siguiente comando:
apt install mosquitto mosquitto-clients -yUna vez que se haya completado la instalación, puede verificar el estado de Mosquitto con el siguiente comando:
systemctl status mosquittoDebería ver la siguiente salida:
? 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.
Crear contraseña administrativa de MQTT
Por razones de seguridad, se recomienda configurar la autenticación por contraseña para MQTT.
Vamos a configurar un usuario y una contraseña de administrador con el siguiente comando:
mosquitto_passwd -c /etc/mosquitto/passwd hiteshEstablezca una contraseña como se muestra a continuación:
Password:
Reenter password:
A continuación, edite el archivo de configuración de MQTT y defina el puerto y el archivo de contraseña.
nano /etc/mosquitto/conf.d/default.confAgregue las siguientes líneas:
listener 1883
password_file /etc/mosquitto/passwd
Guarde y cierre el archivo, luego reinicie el servicio de Mosquitto para aplicar los cambios.
systemctl restart mosquittoCómo usar MQTT para enviar y recibir mensajes
Necesitará usar el cliente Mosquitto para conectarse al servidor Mosquitto y luego enviar y recibir mensajes en diferentes temas.
Antes de enviar y recibir mensajes, necesitará suscribirse a un tema. Puede usar uno de los siguientes temas en aplicaciones de automatización del hogar.
- home/lights/sitting_room
- home/lights/kitchen
- home/lights/master_bedroom
- home/lights/kids_bedroom
Vamos a ejecutar el siguiente comando para suscribirnos al tema home/lights/kids_bedroom.
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"A continuación, abra la nueva interfaz de terminal y publique un mensaje en el tema home/lights/kids_bedroom con el siguiente comando.
mosquitto_pub -u hitesh -P password -m "ON" -t "home/lights/kids_bedroom"En la primera terminal, obtendrá la carga útil ON:
ON
Ahora, vaya a la segunda terminal y envíe el mensaje OFF en el mismo tema.
mosquitto_pub -u hitesh -P password -m "OFF" -t "home/lights/kids_bedroom"Debería ver el siguiente mensaje en la primera terminal:
ON
OFF
Una vez que haya terminado, puede proceder al siguiente paso.
Asegurar Mosquitto con SSL de Let’s Encrypt
Para asegurar Mosquitto con SSL, necesitará instalar el paquete del cliente Certbot en su servidor.
Primero, instale el administrador de paquetes Snap usando el siguiente comando:
apt install snapdA continuación, actualice el paquete Snap usando el siguiente comando:
snap install core
snap refresh coreA continuación, instale el paquete Certbot con el siguiente comando:
snap install --classic certbotA continuación, cree un enlace simbólico del binario de Certbot a la ubicación del sistema.
ln -s /snap/bin/certbot /usr/bin/certbotA continuación, ejecute el siguiente comando para generar un certificado SSL.
certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mosquitto.linuxbuz.comDebería ver la siguiente salida:
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Puede ver todos los archivos de certificado generados usando el siguiente comando:
ls /etc/letsencrypt/live/mosquitto.linuxbuz.com/Obtendrá la siguiente salida:
cert.pem chain.pem fullchain.pem privkey.pem README
A continuación, genere el certificado Diffie-Hellman usando el siguiente comando:
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Una vez que haya terminado, puede proceder al siguiente paso.
Configurar MQTT para usar SSL de Let’s Encrypt
Primero, copie todos los certificados generados al directorio de Mosquitto usando el siguiente comando:
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.keyA continuación, establezca la propiedad adecuada para el certificado de Mosquitto.
chown -R mosquitto: /etc/mosquitto/certsA continuación, edite el archivo de configuración de Mosquitto y defina el SSL de Let’s Encrypt.
nano /etc/mosquitto/conf.d/default.confAgregue las siguientes líneas:
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
Guarde y cierre el archivo, luego reinicie el servicio de Mosquitto para aplicar los cambios.
systemctl restart mosquittoA continuación, verifique la conexión de Mosquitto usando el siguiente comando:
mosquitto_pub -h mosquitto.linuxbuz.com -t "home/lights/kids_bedroom" -m "hello" -p 8883 --capath /etc/ssl/certs/ -u hitesh -P passwordUna vez que haya terminado, puede proceder a probar la conexión de Mosquitto a través del navegador web.
Configurar Websockets de Mosquitto
A continuación, necesitará configurar Websockets para usar el protocolo MQTT desde los navegadores. Puede habilitarlo editando el archivo de configuración predeterminado de Mosquitto:
nano /etc/mosquitto/conf.d/default.confAgregue las siguientes líneas:
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
Guarde y cierre el archivo, luego reinicie el servicio de Mosquitto para aplicar los cambios.
systemctl restart mosquittoA continuación, abra su interfaz de terminal y ejecute el siguiente comando:
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"Ahora, abra su navegador web y use el cliente MQTT basado en navegador para probar la funcionalidad de WebSockets. Debería ver la siguiente pantalla:

Proporcione su host del servidor Mosquitto, puerto, nombre de usuario, contraseña y haga clic en el botón Conectar. Debería ver la siguiente pantalla:

Ahora, escriba cualquier tema, mensaje y luego haga clic en el botón Publicar.
A continuación, regrese a la interfaz de terminal. Debería ver su mensaje publicado en la siguiente salida:
Hi
Conclusión
En esta publicación, explicamos cómo instalar el servidor Mosquitto y asegurarla con SSL de Let’s Encrypt en Ubuntu 22.04. También probamos Mosquitto a través de un cliente basado en navegador. No dude en preguntarme si tiene alguna pregunta.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.