Instalação MQTT · 6 min read · Oct 31, 2025

Como Instalar o Servidor Mosquitto MQTT no Ubuntu 22.04

Mosquitto é uma implementação de servidor leve, gratuita e de código aberto do protocolo MQTT. É projetado para todos os dispositivos, desde computadores de placa única de baixo consumo até servidores completos. O MQTT funciona sobre o protocolo TCP/IP e usa sua rede doméstica de Internet existente para enviar mensagens para seus dispositivos IoT e responder a essas mensagens. É escrito em linguagem C, o que o torna rápido e mais eficiente do que outros corretores MQTT.

Este post mostrará como instalar o servidor Mosquitto no Ubuntu 22.04.

Pré-requisitos

  • Um servidor executando Ubuntu 22.04.
  • Uma senha de root configurada em seu servidor.

Instalar Dependências Necessárias

Antes de começar, é recomendado atualizar e fazer upgrade de todos os pacotes do sistema para a versão atualizada. Você pode atualizá-los executando o seguinte comando:

apt update -y  
apt upgrade -y

Após atualizar todos os pacotes, execute o seguinte comando para instalar os outros pacotes necessários:

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

Uma vez que todos os pacotes necessários estejam instalados, você pode prosseguir para o próximo passo.

Instalar o Servidor Mosquitto

Por padrão, o pacote Mosquitto não está disponível no repositório padrão do Ubuntu 22.04. Portanto, você precisará adicionar o repositório oficial do Mosquitto ao APT. Você pode adicioná-lo com o seguinte comando:

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

Uma vez que o repositório foi adicionado ao APT, você pode instalá-lo com o seguinte comando:

apt install mosquitto mosquitto-clients -y

Uma vez que a instalação foi concluída, você pode verificar o status do Mosquitto com o seguinte comando:

systemctl status mosquitto

Você deve ver a seguinte saída:

? 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.

Criar Senha Administrativa MQTT

Por razões de segurança, é recomendado configurar a autenticação por senha para o MQTT.

Vamos configurar um usuário e senha admin com o seguinte comando:

mosquitto_passwd -c /etc/mosquitto/passwd hitesh

Defina uma senha conforme mostrado abaixo:

Password: 
Reenter password: 

Em seguida, edite o arquivo de configuração do MQTT e defina a porta e o arquivo de senha.

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

Adicione as seguintes linhas:

listener 1883
password_file /etc/mosquitto/passwd

Salve e feche o arquivo, então reinicie o serviço Mosquitto para aplicar as alterações.

systemctl restart mosquitto

Como Usar MQTT para Enviar e Receber Mensagens

Você precisará usar o cliente Mosquitto para se conectar ao servidor Mosquitto e, em seguida, enviar e receber mensagens em diferentes tópicos.

Antes de enviar e receber mensagens, você precisará se inscrever em um tópico. Você pode usar um dos seguintes tópicos em aplicações de automação residencial.

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

Vamos executar o seguinte comando para se inscrever no tópico home/lights/kids_bedroom.

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

Em seguida, abra a nova interface de terminal e publique uma mensagem no tópico home/lights/kids_bedroom com o seguinte comando.

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

No primeiro terminal, você receberá a carga útil ON:

ON

Agora, vá para o segundo terminal e envie a mensagem OFF no mesmo tópico.

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

Você deve ver a seguinte mensagem no primeiro terminal:

ON
OFF

Uma vez que você tenha terminado, pode prosseguir para o próximo passo.

Proteger o Mosquitto com SSL Let’s Encrypt

Para proteger o Mosquitto com SSL, você precisará instalar o pacote cliente Certbot em seu servidor.

Primeiro, instale o gerenciador de pacotes Snap usando o seguinte comando:

apt install snapd

Em seguida, atualize o pacote Snap usando o seguinte comando:

snap install core   
snap refresh core

Em seguida, instale o pacote Certbot com o seguinte comando:

snap install --classic certbot

Em seguida, crie um link simbólico do binário Certbot para o local do sistema.

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

Em seguida, execute o seguinte comando para gerar um certificado SSL.

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

Você deve ver a seguinte saída:

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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Você pode ver todos os arquivos de certificado gerados usando o seguinte comando:

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

Você receberá a seguinte saída:

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

Em seguida, gere o certificado Diffie-Hellman usando o seguinte comando:

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

Uma vez que você tenha terminado, pode prosseguir para o próximo passo.

Configurar MQTT para Usar SSL Let’s Encrypt

Primeiro, copie todos os certificados gerados para o diretório Mosquitto usando o seguinte 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.key

Em seguida, defina a propriedade correta para o certificado Mosquitto.

chown -R mosquitto: /etc/mosquitto/certs

Em seguida, edite o arquivo de configuração do Mosquitto e defina o SSL Let’s Encrypt.

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

Adicione as seguintes linhas:

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

Salve e feche o arquivo, então reinicie o serviço Mosquitto para aplicar as alterações.

systemctl restart mosquitto

Em seguida, verifique a conexão do Mosquitto usando o seguinte comando:

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

Uma vez que você tenha terminado, pode prosseguir para testar a conexão do Mosquitto via navegador.

Configurar Websockets do Mosquitto

Em seguida, você precisará configurar Websockets para usar o protocolo MQTT a partir de navegadores. Você pode habilitá-lo editando o arquivo de configuração padrão do Mosquitto:

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

Adicione as seguintes linhas:

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

Salve e feche o arquivo, então reinicie o serviço Mosquitto para aplicar as alterações.

systemctl restart mosquitto

Em seguida, abra sua interface de terminal e execute o seguinte comando:

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

Agora, abra seu navegador e use o cliente MQTT baseado em navegador para testar a funcionalidade dos WebSockets. Você deve ver a seguinte tela:

Forneça o host do seu servidor Mosquitto, porta, nome de usuário, senha e clique no botão Conectar. Você deve ver a seguinte tela:

Agora, digite qualquer tópico, mensagem e clique no botão Publicar.

Em seguida, volte para a interface do terminal. Você deve ver sua mensagem publicada na seguinte saída:

Hi

Conclusão

Neste post, explicamos como instalar o servidor Mosquitto e protegê-lo com SSL Let’s Encrypt no Ubuntu 22.04. Também testamos o Mosquitto via um cliente baseado em navegador. Sinta-se à vontade para me perguntar se você tiver alguma dúvida.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.