DNS Configuração · 5 min read · Oct 01, 2025
Como Configurar um Resolvedor DNS Local Usando Dnsmasq no Ubuntu 20.04

Dnsmasq significa “abreviação de DNS masquerade” é um encaminhador DNS simples, leve e fácil de usar, utilizado para uma pequena rede. Ele pode ser configurado como um cache DNS e servidor DHCP e suporta os protocolos IPv4 e IPv6. Quando recebe consultas DNS, ele responde a partir de seu cache ou encaminha para um servidor DNS diferente.
Dnsmasq é composto por três subsistemas:
- Subsistema DNS: É usado para armazenar em cache diferentes tipos de registros, incluindo A, AAAA, CNAME e PTR.
- Subsistema DHCP: Suporta DHCPv4, DHCPv6, BOOTP e PXE
- Subsistema de Anúncio de Roteador: Fornece autoconfiguração básica para hosts IPv6. Pode ser usado de forma independente ou em conjunto com DHCPv6.
Neste tutorial, mostraremos como configurar um servidor DNS local com Dnsmasq no servidor Ubuntu 20.04.
Pré-requisitos
- Um servidor executando Ubuntu 20.04.
- Uma senha de root configurada no servidor.
Começando
Primeiro, é recomendado atualizar os pacotes do seu sistema para a versão mais recente. Você pode atualizar todos os pacotes executando o seguinte comando:
apt-get update -yApós atualizar todos os pacotes, você precisará desabilitar o serviço Systemd-resolved em seu sistema. O serviço Systemd-resolved é usado para resolução de nomes de rede para aplicativos locais.
Você pode desabilitá-lo executando o seguinte comando:
systemctl disable --now systemd-resolvedUma vez que o serviço esteja desabilitado, você precisará remover o arquivo resolv.conf padrão e criar um novo com os detalhes do seu servidor DNS personalizado.
Você pode remover o arquivo resolv.conf padrão com o seguinte comando:
rm -rf /etc/resolv.confEm seguida, adicione o servidor DNS do Google ao arquivo resolv.conf com o seguinte comando:
echo "nameserver 8.8.8.8" > /etc/resolv.confUma vez que você tenha terminado, pode prosseguir para a próxima etapa.
Instalar Dnsmasq
Por padrão, o Dnsmasq está disponível no repositório padrão do Ubuntu 20.04. Você pode instalá-lo executando o seguinte comando:
apt-get install dnsmasq dnsutils ldnsutils -yUma vez que a instalação tenha sido concluída, os serviços do Dnsmasq serão iniciados automaticamente. Você pode verificar o status do Dnsmasq com o seguinte comando:
systemctl status dnsmasqVocê deve obter a seguinte saída:
dnsmasq.service - dnsmasq - Um servidor DHCP leve e de cache DNS
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago
Main PID: 17726 (dnsmasq)
Tasks: 1 (limit: 2282)
Memory: 868.0K
CGroup: /system.slice/dnsmasq.service
??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e>
Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - Um servidor DHCP leve e de cache DNS...
Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: verificação de sintaxe OK.
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: iniciado, versão 2.80 cachesize 150
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: serviço DNS limitado a sub-redes locais
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: opções de tempo de compilação: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi>
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: lendo /etc/resolv.conf
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: usando nameserver 8.8.8.8#53
Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: leu /etc/hosts - 7 endereços
Nov 02 11:02:12 ubuntu2004 systemd[1]: Iniciado dnsmasq - Um servidor DHCP leve e de cache DNS.
Uma vez que você tenha terminado, pode prosseguir para a próxima etapa.
Configurar Dnsmasq
Em seguida, você precisará configurar o Dnsmasq como um servidor DNS local. Você pode fazer isso editando o arquivo de configuração principal do Dnsmasq:
nano /etc/dnsmasq.confAltere as seguintes linhas:
port=53
domain-needed
bogus-priv
listen-address=127.0.0.1,seu-ip-do-servidor
expand-hosts
domain=dns-exemplo.com
cache-size=1000
Salve e feche o arquivo quando terminar.
Em seguida, você precisará adicionar o endereço IP do seu servidor como o nameserver primário no seu arquivo resolv.conf. Você pode adicioná-lo com o seguinte comando:
nano /etc/resolv.confAdicione a seguinte linha acima da linha “nameserver 8.8.8.8”:
nameserver seu-ip-do-servidor
Salve e feche o arquivo quando terminar. Em seguida, verifique o servidor quanto a qualquer erro de configuração com o seguinte comando:
dnsmasq --testSe tudo estiver bem, você deve obter a seguinte saída:
dnsmasq: verificação de sintaxe OK.
Finalmente, reinicie o serviço Dnsmasq para aplicar as alterações:
systemctl restart dnsmasqNeste ponto, o Dnsmasq está iniciado e escutando na porta 53. Você pode verificar isso com o seguinte comando:
ss -alnp | grep -i :53Você deve obter a seguinte saída:
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=4))
udp UNCONN 0 0 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=6))
tcp LISTEN 0 32 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=5))
tcp LISTEN 0 32 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=7))
Adicionar Registros DNS ao Servidor Dnsmasq
Em seguida, você precisará editar seu arquivo /etc/hosts e adicionar a entrada do servidor DNS local.
nano /etc/hostsAdicione a seguinte linha:
seu-ip-do-servidor host1.dns-exemplo.com
Salve e feche o arquivo quando terminar.
Verificar a Resolução do Servidor Dnsmasq
Neste ponto, o Dnsmasq está instalado e configurado. Agora, é hora de verificar a resolução DNS.
Você pode usar o comando dig para verificar a resolução DNS, como mostrado abaixo:
dig host1.dns-exemplo.com +shortSe tudo estiver bem, você deve ver o IP do seu servidor na seguinte saída:
seu-ip-do-servidor
Você também pode verificar a resolução DNS externa com o seguinte comando:
dig howtoforge.com +shortVocê deve obter a seguinte saída:
172.67.68.93
104.26.3.165
104.26.2.165
Configurar Cliente Remoto para Usar o Servidor DNS Dnsmasq
Em seguida, você precisará configurar um cliente remoto para usar seu servidor DNS Dnsmasq como o servidor DNS padrão.
Primeiro, instale as ferramentas DNS com o seguinte comando:
apt-get install dnsutils ldnsutils -yUma vez instalado, você precisará editar o arquivo /etc/resolv.conf e a entrada do seu servidor DNS Dnsmasq.
nano /etc/resolv.confAdicione a seguinte linha no início do arquivo:
nameserver seu-ip-do-servidor
Salve e feche o arquivo quando terminar.
Em seguida, verifique a resolução DNS local com o seguinte comando:
dig host1.dns-example.comVocê deve ver a seguinte saída:
; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com
;; opções globais: +cmd
;; Obteve resposta:
;; HEADER opcode: QUERY, status: NOERROR, id: 26401
;; flags: qr aa rd ra; QUERY: 1, RESPOSTA: 1, AUTORIDADE: 0, ADICIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: versão: 0, flags:; udp: 4096
;; SEÇÃO DE QUESTÃO:
;host1.dns-example.com. IN A
;; SEÇÃO DE RESPOSTA:
host1.dns-example.com. 0 IN A 45.58.32.165
;; Tempo de consulta: 301 msec
;; SERVIDOR: 45.58.32.165#53(45.58.32.165)
;; QUANDO: Mon Nov 02 16:49:37 IST 2020
;; TAMANHO MSG rcvd: 66
Em seguida, você precisará verificar seu servidor DNS quanto ao cache. Você pode verificar isso usando a ferramenta drill.
Primeiro, execute o seguinte comando:
drill google.com | grep "Query time"Você deve ver a seguinte saída:
;; Tempo de consulta: 290 msec
Em seguida, execute o comando novamente para verificar se o cache está funcionando ou não:
drill google.com | grep "Query time"Você deve ver que o tempo de consulta agora está diminuindo para 4 msec:
;; Tempo de consulta: 4 msec
Conclusão
Parabéns! você instalou e configurou com sucesso o Dnsmasq como um servidor DNS local no Ubuntu 20.04. Espero que agora você possa implementá-lo facilmente em sua rede local para resolução de nomes.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.