Ir para o conteúdo

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/udp e 53/tcp disponíveis no host se o DNSao for servir sua rede diretamente
  • Porta 8044/tcp disponí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.authPass se o dashboard puder ser acessado por outros usuários.
  • Defina server.statsDbPath para 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: 1 envia 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.blockLists e lists.allowLists para comportamento de DNS sinkhole.
  • Adicione resolver.localMappings para serviços locais e nomes de homelab.

Para a referência completa, veja Configuração.