Como Configurar o AdGuard Home no Docker e Proteger Toda a Sua Rede

Navegar na internet moderna sem um bloqueador eficiente tornou-se uma experiência frustrante: anúncios em vídeo que travam a página, pop-ups invasivos e rastreadores silenciosos que coletam seus dados e sobrecarregam a sua conexão. Embora extensões de navegador como o uBlock Origin sejam excelentes para computadores, elas não resolvem o problema em Smart TVs, celulares, consoles de videogame ou dispositivos IoT.

É exatamente aqui que entra o AdGuard Home. Funcionando como um servidor DNS local com filtragem de conteúdo, ele intercepta e bloqueia requisições maliciosas e anúncios antes mesmo que eles cheguem aos aparelhos da sua casa. Ao instalá-lo utilizando o Docker e Docker Compose, você obtém uma infraestrutura isolada, extremamente leve, fácil de atualizar e livre de dependências que poderiam poluir o seu sistema operacional hospedeiro.

Neste guia prático e completo, você vai aprender desde a resolução do clássico conflito da porta 53 no Linux até o download da imagem oficial, a criação do arquivo docker-compose.yml, o passo a passo pelo assistente na porta 3000 e a ativação da proteção no roteador para blindar toda a sua rede local.

1. Por que escolher o AdGuard Home em vez de extensões locais?

Diferente de uma extensão instalada apenas no Google Chrome ou Firefox, o AdGuard Home atua na camada de resolução de nomes (DNS) de toda a sua rede:

  • Proteção universal em nível de rede: Bloqueia propagandas em aplicativos de Smart TVs, jogos mobile em smartphones Android/iOS e dispositivos inteligentes onde não é possível instalar plugins.
  • Suporte nativo a DNS criptografado: Permite utilizar servidores upstream com DNS-over-HTTPS (DoH), DNS-over-TLS (DoT) e DNS-over-QUIC (DoQ), impedindo que provedores de internet monitorem seu tráfego de DNS.
  • Controle parental e SafeSearch integrados: Bloqueie conteúdo adulto, ative busca segura forçada no Google/Bing/YouTube e restrinja plataformas específicas (como redes sociais) com apenas um clique.
  • Velocidade e economia de banda: Com o cache DNS local inteligente, requisições frequentes respondem em menos de 1 milissegundo, acelerando o carregamento geral da navegação.

2. Passo Crucial no Linux: Liberando a Porta 53 (systemd-resolved)

Se você está executando o Docker no Ubuntu, Debian ou em sistemas baseados em Linux com systemd, certamente enfrentará o erro bind: address already in use ao tentar subir o container. Isso ocorre porque o serviço nativo systemd-resolved escuta por padrão na porta 53 local (no endereço 127.0.0.53:53).

Para liberar a porta 53 para o AdGuard Home sem quebrar a resolução de DNS do seu próprio servidor Linux, siga estes passos no terminal:

Primeiro, abra o arquivo de configuração do resolvedor:

sudo nano /etc/systemd/resolved.conf

Descomente ou adicione as seguintes linhas dentro da seção [Resolve]:

[Resolve]
DNS=1.1.1.1 9.9.9.9
DNSStubListener=no

Salve o arquivo com Ctrl + O e saia com Ctrl + X. Agora, crie o link simbólico para que o sistema use diretamente o arquivo de resolução real e reinicie o serviço:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved

Para comprovar que a porta 53 está totalmente livre, execute:

sudo ss -tulpn | grep :53

Se o comando não retornar nenhuma linha ocupando a porta 53, ela está desimpedida e pronta para o container!

3. Criando a Estrutura de Pastas e Baixando a Imagem

Para manter seu ambiente organizado e garantir que suas configurações e estatísticas não sejam perdidas ao atualizar ou reiniciar o container, vamos criar um diretório dedicado com volumes persistentes:

mkdir -p ~/adguard-home/work ~/adguard-home/conf
cd ~/adguard-home

Em seguida, você pode realizar o download prévio da imagem oficial a partir do Docker Hub com o comando:

docker pull adguard/adguardhome:latest

A imagem oficial do AdGuard Home é mantida pela própria equipe do projeto, baseada em Alpine Linux, ocupando menos de 40 MB de espaço em disco.

4. Configurando o arquivo docker-compose.yml

Agora vamos criar o arquivo de orquestração com o Docker Compose. Crie o arquivo no diretório atual:

nano docker-compose.yml

Cole o seguinte conteúdo dentro do arquivo:

services:
  adguardhome:
    image: adguard/adguardhome:latest
    container_name: adguard-home
    restart: unless-stopped
    ports:
      # Portas DNS padrão (TCP e UDP)
      - "53:53/tcp"
      - "53:53/udp"
      # Assistente de instalação inicial (Wizard)
      - "3000:3000/tcp"
      # Interface de administração Web e DoH (HTTP e HTTPS)
      - "80:80/tcp"
      - "443:443/tcp"
      - "443:443/udp"
      # DNS-over-TLS (DoT)
      - "853:853/tcp"
      # Servidor DHCP integrado (Opcional - ative se for usar o DHCP do AdGuard)
      - "67:67/udp"
      - "68:68/udp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf
    environment:
      - TZ=America/Sao_Paulo
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Entendendo as portas e volumes mapeados:

  • 53/tcp e 53/udp: Porta principal de escuta DNS para todos os clientes da sua rede local.
  • 3000/tcp: Utilizada exclusivamente durante a configuração inicial do assistente web.
  • 80/tcp e 443/tcp: Acesso ao painel web após a configuração inicial e suporte a DNS-over-HTTPS. (Dica: Se a porta 80 já estiver ocupada no seu host por outro servidor web como Nginx/Apache, altere para "8080:80/tcp").
  • ./work e ./conf: Garantem a persistência de regras de filtro, bancos de dados de histórico de consultas e credenciais.

5. Inicializando o Contêiner e Verificando os Logs

Com o arquivo docker-compose.yml salvo, suba o serviço em segundo plano (modo detached):

docker compose up -d

Verifique se o contêiner iniciou perfeitamente e confira os logs de inicialização:

docker compose ps
docker compose logs -f adguardhome

Você deverá ver mensagens confirmando que o AdGuard Home subiu e que o assistente de boas-vindas está aguardando conexões na porta 3000.

6. Concluindo o Assistente Inicial na Porta 3000

Abra seu navegador em qualquer computador ou smartphone conectado na mesma rede local e acesse o endereço IP da máquina Docker na porta 3000:

http://192.168.1.100:3000

(Substitua 192.168.1.100 pelo IP real do seu servidor na rede local).

Siga o assistente interativo de configuração:

  1. Boas-vindas: Clique no botão “Iniciar”.
  2. Interfaces de Rede:
    • Interface Web de Administração: Mantenha em “Todas as interfaces” e porta 80 (ou a porta que você mapeou no Compose).
    • Servidor DNS: Deixe em “Todas as interfaces” e porta 53. O assistente confirmará em verde que a porta 53 está livre.
  3. Autenticação: Defina o nome do usuário administrador e uma senha forte. Guarde essas informações com cuidado.
  4. Conclusão: O assistente exibirá os IPs locais do AdGuard Home prontos para uso. Clique em “Abrir Painel”.

A partir deste momento, você será redirecionado para a interface oficial de login na porta 80: http://192.168.1.100.

7. Ajustes Essenciais: Upstream DNS Criptografado e Melhores Listas de Bloqueio

Para obter o máximo de privacidade, velocidade e eficiência na filtragem, faça dois ajustes rápidos no painel:

A. Servidores DNS Upstream com Criptografia (DoH / DoT)

Vá até Configurações > Configurações de DNS. No campo “Servidores DNS upstream”, remova os endereços comuns não criptografados e cole servidores modernos com DNS-over-HTTPS e DNS-over-TLS:

https://dns.cloudflare.com/dns-query
tls://dns.quad9.net
https://dns.adguard-dns.com/dns-query

Em “Modo de consulta aos servidores upstream”, selecione a opção “Modo paralelo” (Parallel requests). Dessa forma, o AdGuard Home envia a consulta para todos os servidores simultaneamente e utiliza a resposta mais veloz, garantindo menor latência.

B. Adicionando Listas de Bloqueio Robustas

Acesse o menu Filtros > Listas de bloqueio de DNS. Além da lista padrão do AdGuard, clique em “Adicionar lista de bloqueio” > “Adicionar uma lista personalizada” e adicione a renomada lista HaGeZi Multi PRO, amplamente elogiada pela comunidade por bloquear rastreadores globais sem quebrar sites bancários ou compras brasileiras:

Nome: HaGeZi Multi PRO
URL: https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt

8. Como Ativar o Bloqueio em Todos os Dispositivos da Rede

Para que computadores, smartphones, Smart TVs e assistentes virtuais utilizem a proteção automaticamente sem precisar configurar cada aparelho individualmente, altere a configuração do seu roteador principal:

  1. Acesse a página de administração do seu roteador Wi-Fi (normalmente http://192.168.1.1 ou http://192.168.0.1).
  2. Navegue até a seção de Rede Local (LAN) / Servidor DHCP.
  3. Localize o campo DNS Primário e insira o endereço IP fixo da máquina onde você instalou o AdGuard Home (ex: 192.168.1.100).
  4. Deixe o DNS Secundário em branco ou preencha com o mesmo IP do AdGuard. Não coloque servidores públicos (como 8.8.8.8) no DNS secundário, pois aparelhos inteligentes podem alternar requisições e burlar a filtragem.
  5. Salve as alterações e reinicie o roteador ou desconecte e reconecte o Wi-Fi nos seus dispositivos.

9. Como Atualizar o AdGuard Home no Docker Futuramente

Graças ao Docker Compose, atualizar o AdGuard Home quando novas versões forem lançadas leva apenas alguns segundos e mantém todas as suas listas e configurações intactas:

cd ~/adguard-home
docker compose pull
docker compose up -d
docker image prune -f

Conclusão

Com o AdGuard Home operando no Docker, sua rede inteira passa a contar com um escudo centralizado contra publicidade invasiva, redução no consumo de dados em conexões móveis ou lentas e proteção ativa de privacidade em smart TVs e dispositivos domésticos. Acesse o menu Registro de Consultas do painel nas primeiras horas para acompanhar em tempo real tudo o que seus aparelhos tentam acessar na internet — você certamente ficará surpreso com o volume de telemetria bloqueado!