Início Rápido¶
Esta página coloca o DNSao em execução e valida que clientes conseguem usá-lo como servidor DNS. Use Docker se quiser o caminho mais curto. Use o script systemd ou o JAR manual se preferir um serviço instalado diretamente no host.
Antes De Começar¶
Você precisa de:
- Um host Linux, VM, host de containers ou pequeno servidor que fique sempre ligado
- Porta
53/udpe53/tcpdisponíveis no host se o DNSao for servir sua rede diretamente - Porta
8044/tcpdisponível se você quiser acessar o dashboard de outra máquina - Java 17 ou mais recente apenas quando não estiver usando Docker
Verifique se algo já está usando a porta 53:
sudo ss -tulpn | grep :53
Se o comando retornar algum processo, resolva o conflito antes de fazer o DNSao escutar na porta 53.
Rodando Com Docker Compose¶
Crie um diretório para configuração e dados do DNSao:
sudo mkdir -p /opt/dnsao
Crie o arquivo docker-compose.yml:
services:
dnsao:
image: ghcr.io/vitallan/dnsao:latest
container_name: dnsao
restart: unless-stopped
ports:
- "53:8053/udp"
- "53:8053/tcp"
- "8044:8044"
volumes:
- /opt/dnsao:/etc/dnsao
Inicie:
docker compose up -d
A imagem Docker escuta na porta 8053 dentro do container para evitar bind interno em uma porta privilegiada. O Compose mapeia a porta 53 do host para a porta 8053 do container.
Se /opt/dnsao estiver vazio, o DNSao baixa um application.yml padrão para Docker na primeira inicialização.
Validar Resolução DNS¶
No host do DNSao:
dig example.com @127.0.0.1
De outra máquina na mesma rede, troque DNSAO_IP pelo endereço do servidor:
dig example.com @DNSAO_IP
Você deve receber uma resposta DNS normal com status: NOERROR.
Abrir O Dashboard¶
Acesse:
http://DNSAO_IP:8044
O dashboard mostra sumário de queries, histórico, comportamento do cache, uso de upstreams, latência dos upstreams e saúde da JVM.
Se você expuser o dashboard fora de uma LAN confiável, configure server.authPass e coloque o DNSao atrás de um proxy reverso HTTPS. A autenticação do dashboard usa HTTP se você não adicionar TLS no proxy.
Apontar Clientes Para O DNSao¶
Para uma rede inteira, configure seu roteador ou servidor DHCP para anunciar o IP do DNSao como servidor DNS.
Para testar, configure um dispositivo manualmente para usar o DNSao como DNS. Depois de alterar as configurações DNS, faça uma query nesse dispositivo e confirme que ela aparece no histórico do dashboard.
O Que Configurar Depois¶
- Defina
server.authPassse o dashboard puder ser acessado por outros usuários. - Defina
server.statsDbPathpara um caminho SQLite persistente se quiser manter histórico e métricas entre reinícios. - Escolha upstreams em
resolver.upstreams: UDP pela simplicidade, DoT/DoH para queries upstream criptografadas. - Ajuste
resolver.multiplier:1envia cada query para um upstream; valores maiores disputam múltiplos upstreams por menor latência, mas expõem cada query a mais resolvedores. - Adicione
lists.blockListselists.allowListspara comportamento de DNS sinkhole. - Adicione
resolver.localMappingspara serviços locais e nomes de homelab.
Para a referência completa, veja Configuração.