Voltar ao blog
Agosto 19, 2026Guias

Como configurar o AdGuard Home num VPS

Instalar o AdGuard Home no Ubuntu, concluir o assistente inicial, proteger a interface web, ativar DNS-over-HTTPS e DNS-over-TLS, apontar os dispositivos para o seu resolvedor e evitar operar um servidor DNS aberto que toda a internet possa abusar.

Como configurar o AdGuard Home num VPS

O AdGuard Home é um sumidouro DNS autoalojado e um resolvedor de estilo recursivo com interface web. Pode bloquear anúncios, rastreadores e domínios de malware em todos os dispositivos que o usem como DNS — telemóveis, computadores portáteis, televisores inteligentes e outros projetos no VPS. Ao contrário de uma extensão do browser, funciona mesmo para aplicações que ignoram ficheiros hosts. Executá-lo num VPS é útil quando quer a mesma filtragem em viagem, ou quando não quer um Raspberry Pi na rede doméstica.

O valor predefinido perigoso que não deve publicar é um resolvedor aberto: se UDP/TCP 53 for alcançável a partir de toda a internet sem controlo de acesso, estranhos usarão o seu VPS para amplificação DNS e receberá queixas de abuso. Este guia instala o AdGuard Home no Ubuntu, associa o DNS a localhost ou a uma interface WireGuard privada salvo se expuser de propósito o DNS cifrado, coloca o painel em HTTPS e mostra como computadores e telemóveis podem usar DNS-over-HTTPS (DoH) ou DNS-over-TLS (DoT) sem abrir a porta 53 clássica ao mundo.

Para que serve bem o AdGuard Home

O Pi-hole é a comparação habitual. O AdGuard Home é um único binário com interface web integrada, frontais DNS cifrados opcionais e definições por cliente. Pode executá-lo no Docker ou como serviço systemd. Num VPS Hiddence combina bem com uma VPN privada: os dispositivos entram no WireGuard, enviam o DNS para o VPS pelo túnel e nunca expõem a porta 53 em público.

  • Bloqueio em toda a rede sem instalar uma aplicação em cada dispositivo
  • DoH (443) e DoT (853) para o DNS não circular em claro em Wi-Fi públicas
  • Registo de consultas e estatísticas para ver que dispositivo fala com que domínio
  • Upstreams personalizados (Quad9, Cloudflare ou o seu próprio Unbound)
  • Pegada pequena — um VPS de 1 GB pode filtrar um agregado familiar mais alguns clientes extra

Requisitos

Precisa de um domínio se quiser um certificado de confiança para DoH/DoT e para o painel. Pode testar primeiro em HTTP e com o IP do servidor, mas não deixe assim. Se o systemd-resolved já possuir a porta 53 no Ubuntu, libertamo-la antes de o AdGuard Home associar o DNS.

  • VPS Ubuntu 22.04 ou 24.04 com root/sudo
  • 1 GB de RAM chega para uso pessoal
  • Um domínio ou subdomínio (dns.example.com) com um registo A para o VPS
  • Acesso SSH; WireGuard opcional se quiser DNS só dentro de um túnel

Passo 1: Libertar a porta 53 e instalar o AdGuard Home

O Ubuntu Server corre muitas vezes o systemd-resolved como stub em 127.0.0.53:53. O AdGuard Home quer a 53 nas interfaces que escolher. O instalador pode tratar disto, mas fazê-lo de forma explícita evita um DNS a meio no próprio VPS (o servidor ainda precisa de resolver pacotes).

bash
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl ca-certificates

# See who owns port 53:
ss -tulpn | grep ':53'

# Typical Ubuntu fix: stop stub listener, point the OS at a temporary resolver
mkdir -p /etc/systemd/resolved.conf.d
cat >/etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=1.1.1.1
DNSStubListener=no
EOF
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved

curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Passo 2: Assistente do primeiro arranque

O instalador imprime um URL, normalmente http://YOUR_IP:3000/. Abra-o, crie um utilizador administrador com uma palavra-passe longa e escolha os endereços de escuta. Para um VPS público, uma primeira configuração segura é: Admin Web em 127.0.0.1:3000 (Caddy à frente) ou em 80/443 após TLS; escuta DNS em 127.0.0.1:53 mais uma interface VPN, não em 0.0.0.0:53. Se realmente precisar de DNS ao estilo LAN para amigos, prefira DoH/DoT em 443/853 com autenticação, não 53/udp aberto.

Escolha servidores DNS a montante em que confie. Muita gente usa https://dns.quad9.net/dns-query ou Cloudflare. Ative pedidos em paralelo se quiser uma comutação mais rápida. Ligue as listas de filtros predefinidas e acrescente mais mais tarde — cinquenta listas no primeiro dia tornam a depuração impossível quando um sítio se parte.

Se não conseguir abrir a porta 3000 a partir do computador portátil, use um túnel SSH: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP e visite http://127.0.0.1:3000/

Passo 3: Proxy inverso e HTTPS para o painel

Quando o assistente termina, o AdGuard Home costuma mover a interface para a porta 80. Isso colide com Caddy ou Nginx se também alojar sítios. Um padrão limpo: web do AdGuard Home em 127.0.0.1:8080, DNS em 127.0.0.1:53, Caddy na 443 para o painel e o DoH.

bash
# In AdGuard Home settings, bind the web UI to 127.0.0.1:8080
# Example Caddyfile:

dns.example.com {
    reverse_proxy 127.0.0.1:8080
}

# After Caddy is up:
curl -I https://dns.example.com

Passo 4: Ativar DNS-over-HTTPS e DNS-over-TLS

Nas definições de cifra, ative a cifra, defina o nome do servidor para dns.example.com e aponte o AdGuard Home para os seus ficheiros de certificado — os que o Caddy guarda, ou certificados que o AdGuard Home obtém ele próprio se escutar na 443. O DoH é normalmente https://dns.example.com/dns-query. O DoT é dns.example.com:853. Se o Caddy já possuir a 443, deixe o Caddy terminar o TLS e fazer proxy inverso do caminho DoH para a porta DoH HTTP em claro do AdGuard Home, ou deixe o AdGuard Home escutar na 443 e coloque o painel noutro subdomínio.

Verifique com um cliente antes de alterar todos os dispositivos. Num computador portátil com um curl moderno:

bash
curl -H 'accept: application/dns-json' 'https://dns.example.com/dns-query?name=example.com&type=A'

# DoT test (kdig from knot-dnsutils, if installed):
# kdig @dns.example.com +tls-ca +tls-host=dns.example.com example.com

Passo 5: Apontar dispositivos reais para o seu resolvedor

O Windows 11 e as versões recentes do Android podem usar um modelo DoH. O iOS pode usar um perfil de configuração ou um cliente com suporte DoH. O Firefox e o Chromium também permitem um URL DoH personalizado. Num router doméstico, defina o DNS WAN só se o router suportar DoT/DoH; caso contrário, execute WireGuard e defina o DNS para o IP VPN do VPS para o DNS clássico nunca atravessar a internet.

  • Android 9+: DNS privado (DoT) → dns.example.com
  • Firefox: Definições → Rede → DNS over HTTPS → URL personalizado https://dns.example.com/dns-query
  • Dispositivos Apple: um mobileconfig assinado ou uma aplicação com DoH/DoT
  • Outros VPS: defina resolv.conf ou systemd-resolved para o IP WireGuard desta instância AdGuard
  • Evite definir o IP deste VPS como DNS em redes públicas aleatórias sem cifra

Passo 6: Firewall — fechar o DNS recursivo aberto

Esta secção evita uma surpresa desagradável. Permita SSH, HTTPS e, opcionalmente, 853/tcp para DoT. Não permita 53/udp a partir de 0.0.0.0/0 salvo um desenho muito específico, com limite de taxa e autenticado — e mesmo assim, provavelmente não deveria.

bash
ufw allow OpenSSH
ufw allow 443/tcp comment 'dashboard + DoH'
ufw allow 853/tcp comment 'DoT'
# If DNS is only on WireGuard (example iface wg0, 10.8.0.1):
# ufw allow in on wg0 to any port 53 proto udp
ufw enable
ufw status verbose

# Confirm 53 is not public:
ss -tulpn | grep ':53'

Filtros, listas de permissão e clientes

Comece pelo filtro DNS predefinido do AdGuard e por uma lista de malware. Quando um sítio se comportar mal, consulte o registo de consultas e acrescente uma regra específica de lista branca em vez de desativar todo o bloqueio. Use nomes de cliente (por IP ou por ClientID no URL DoH) para aplicar listas mais estritas a um televisor inteligente e mais folgadas a um portátil de trabalho. Ative a pesquisa segura só se realmente a quiser — surpreende quem não pediu resultados do Google reescritos.

  • Registo de consultas: encontre o domínio bloqueado e coloque-o na lista branca se for um falso positivo
  • Definições de cliente: listas de bloqueio diferentes por dispositivo
  • Clientes não permitidos: bloqueie intervalos que não lhe pertencem
  • Limitação de taxa: ative-a se alguma vez expor mais do que um punhado de utilizadores

Resolução de problemas

Se o próprio VPS não conseguir fazer apt update, partiu o DNS local ao libertar a porta 53 — coloque um resolvedor estático em resolved.conf como mostrado acima. Se os dispositivos «têm internet» mas os anúncios continuam a carregar, estão a contornar o seu DNS (resolvedores fixos, DoH no browser ou uma aplicação com DNS próprio). Se o painel estiver vazio, está a olhar para a instância errada ou ainda a bater na porta 3000 depois de o assistente ter movido a interface.

  • apt falha: verifique /etc/resolv.conf e systemd-resolved
  • Porta 53 em uso: ss -tulpn, desative o listener stub
  • Erros de certificado DoH: o nome de anfitrião tem de coincidir com o SAN do certificado
  • Anúncios ainda visíveis: o DoH do browser para outro fornecedor sobrepõe-se ao do sistema
  • RAM elevada: registo de consultas + demasiadas listas de filtros — reduza as listas e encurte a retenção de registos

Lista de verificação de segurança

A interface web é um painel de administração. Palavra-passe única, só HTTPS e não publique o URL. Mantenha o AdGuard Home atualizado; o script de instalação e a interface expõem ambos um caminho de atualização. Restrinja a 443 se só os seus dispositivos devem usar DoH — autenticação HTTP básica no caminho DoH ou acesso só por WireGuard é bem mais seguro do que um resolvedor aberto famoso.

  • Sem 53/udp público
  • HTTPS no painel
  • Palavra-passe de administrador forte, guardada num gestor de palavras-passe
  • Prefira WireGuard + DNS interno para dispositivos da família
  • Cópia de segurança do AdGuardHome.yaml fora do servidor

Dicas

  • Faça cópia de /opt/AdGuardHome/AdGuardHome.yaml antes de cada atualização
  • Use um subdomínio dedicado; não o partilhe com um CMS alheio
  • Se o Caddy já corre, deixe o Caddy possuir a 443 e mantenha o AdGuard Home em localhost
  • Documente o URL DoH dos seus dispositivos — vai esquecê-lo
  • Combine com os guias de endurecimento SSH e firewall para o VPS não ser só «seguro no DNS»

O AdGuard Home num VPS é direto: liberte a porta 53 em local, execute o instalador, termine o assistente com uma palavra-passe de administrador forte, coloque a interface em HTTPS, ative DoH/DoT e mantenha o DNS clássico fora da internet pública. Aponte os dispositivos para o seu extremo cifrado ou para um IP VPN, comece com um conjunto pequeno de filtros e use o registo de consultas quando algo se partir. Isso é um resolvedor privado que controla de verdade — não um DNS aberto público que meterá o seu VPS em bases de abuso.