Gerador de mosquitto.conf
Escolha listeners, TLS, WebSockets, autenticação, persistência e logs e receba uma configuração comentada do Mosquitto 2.x com os comandos de mosquitto_passwd, Docker e systemd correspondentes.
# mosquitto.conf — Mosquitto 2.x
# Generated with the TestMQTT mosquitto.conf generator.
# Full reference: man mosquitto.conf / https://mosquitto.org/man/mosquitto-conf-5.html
# ------------------------------------------------------------------
# General
# ------------------------------------------------------------------
# One set of authentication settings shared by every listener.
per_listener_settings false
# ------------------------------------------------------------------
# Persistence
# ------------------------------------------------------------------
# Save retained messages, subscriptions and queued QoS 1/2 messages to disk.
persistence true
persistence_location /var/lib/mosquitto/
# ------------------------------------------------------------------
# Logging
# ------------------------------------------------------------------
log_dest file /var/log/mosquitto/mosquitto.log
log_type error
log_type warning
log_type notice
log_type information
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S
# ------------------------------------------------------------------
# Security (applies to all listeners)
# ------------------------------------------------------------------
allow_anonymous false
password_file /etc/mosquitto/passwd
# ------------------------------------------------------------------
# Listeners
# ------------------------------------------------------------------
# MQTT over TCP
listener 1883
# MQTT over WebSockets
listener 9001
protocol websocketsCriar usuários
# Create the password file with the first user (-c creates / overwrites it)
sudo mosquitto_passwd -c /etc/mosquitto/passwd alice
# Add more users later — without -c
sudo mosquitto_passwd /etc/mosquitto/passwd bob
# Mosquitto 2.x warns if the file is readable by other users
sudo chown mosquitto:mosquitto /etc/mosquitto/passwd
sudo chmod 0700 /etc/mosquitto/passwdRodar com Docker
# Layout: ./config/mosquitto.conf, ./config/passwd
mkdir -p config data log
cp mosquitto.conf config/mosquitto.conf
docker run -d --name mosquitto --restart unless-stopped \
-p 1883:1883 \
-p 9001:9001 \
-v "$PWD/config:/mosquitto/config" \
-v "$PWD/data:/mosquitto/data" \
-v "$PWD/log:/mosquitto/log" \
eclipse-mosquitto:2
docker logs -f mosquitto
# Tip: set "Paths for" to Docker so the file paths in the config match the container.Aplicar em um servidor Linux (systemd)
# Install the config
sudo cp mosquitto.conf /etc/mosquitto/mosquitto.conf
# Optional: run in the foreground to spot config errors (Ctrl+C to stop)
sudo systemctl stop mosquitto
sudo mosquitto -c /etc/mosquitto/mosquitto.conf -v
# Restart the service and follow its log
sudo systemctl restart mosquitto
sudo systemctl status mosquitto
sudo journalctl -u mosquitto -fO padrão somente-local do Mosquitto 2.0
O Mosquitto 2.0 mudou os padrões para ser seguro logo de cara. Se a configuração não tiver nenhuma linha listener, o broker só escuta em localhost, e clientes anônimos são recusados a menos que você os permita explicitamente. É por isso que uma instalação nova costuma funcionar com mosquitto_sub na mesma máquina, mas rejeita todos os outros dispositivos. A solução é um listener explícito e uma decisão sobre autenticação — exatamente o que este gerador escreve. Instalando do zero? Comece por como instalar o Mosquitto.
Listeners
Cada linha listener abre uma porta e inicia um bloco: as linhas seguintes (protocolo, certificados, max_connections) pertencem a esse listener até o próximo. A porta 1883 é MQTT puro, a 8883 é MQTT sobre TLS, e um listener com protocol websockets atende clientes de navegador — 9001 é a escolha mais comum. Adicione um endereço de bind opcional como 127.0.0.1 para manter um listener acessível só no próprio host. O guia de portas MQTT e MQTT sobre WebSockets explicam as convenções.
Listeners TLS precisam de um certfile e um keyfile; com Let’s Encrypt eles são fullchain.pem e privkey.pem. O cafile só é obrigatório quando você ativa require_certificate para autenticar clientes com certificados próprios.
Autenticação e ACLs
allow_anonymous false junto com um password_file é o mínimo para qualquer broker acessível pela rede. Crie o arquivo com mosquitto_passwd -c — atenção: -c sobrescreve um arquivo existente, então não use ao adicionar mais usuários. Depois, um acl_file restringe quais tópicos cada usuário pode ler ou escrever; o exemplo gerado mostra regras de usuário e regras pattern com as substituições %u e %c. Leia autenticação no Mosquitto para o passo a passo completo.
per_listener_settings precisa aparecer antes dos listeners. Deixe em false para um único conjunto de regras compartilhado; use true quando, por exemplo, um listener em localhost deve continuar anônimo enquanto o público exige senha.
Persistência, logs e limites
Com persistence true, mensagens retidas, sessões persistentes e mensagens QoS 1 e 2 na fila sobrevivem a reinicializações em mosquitto.db dentro de persistence_location (mantenha a barra no final). Em um servidor, grave os logs em arquivo; no Docker, em stdout para que docker logs mostre tudo. max_packet_size rejeita pacotes grandes demais e substitui o obsoleto message_size_limit; max_connections limita os clientes por listener.
Colocando para rodar
Para containers, mude os caminhos para Docker para que batam com a estrutura da imagem oficial e siga como rodar o Mosquitto no Docker. Em um servidor, teste o arquivo em primeiro plano com mosquitto -c … -v antes de reiniciar o serviço. Com tudo no ar, conecte-se pelo cliente MQTT online via WebSockets e revise as boas práticas de segurança MQTT antes de expor o broker à internet.
Perguntas frequentes sobre mosquitto.conf
Por que os clientes não conseguem se conectar ao Mosquitto 2.0 a partir de outra máquina?
Desde a versão 2.0, o Mosquitto iniciado sem uma diretiva listener só escuta em localhost e recusa clientes anônimos. Adicione um listener explícito como "listener 1883" e configure um password_file ou defina allow_anonymous true.
Onde fica o mosquitto.conf?
Os pacotes Linux o instalam em /etc/mosquitto/mosquitto.conf, o Homebrew usa /opt/homebrew/etc/mosquitto/mosquitto.conf e a imagem Docker oficial lê /mosquitto/config/mosquitto.conf.
O que faz o per_listener_settings?
Quando é false (o padrão), allow_anonymous, password_file e acl_file valem para todos os listeners. Quando é true, cada listener tem suas próprias configurações de autenticação — por exemplo, acesso anônimo em uma porta só de localhost e senhas na porta pública.
Preciso reiniciar o Mosquitto depois de adicionar um usuário?
O Mosquitto relê os arquivos de senha e ACL quando recebe SIGHUP, então systemctl reload mosquitto ou um restart bastam. Mudanças nos listeners sempre exigem um restart completo.