Como configurar o Pi-hole DNS-over-HTTPS no Ubuntu Server 24.04

Para o Pi-hole no Ubuntu Server 24.04, direcione as solicitações upstream através do proxy dnscrypt-proxylocal e aponte o Pi-hole para o servidor local em 127.0.0.1#5053`/var/www/pi-hole`. Isso criptografa o tráfego DNS entre o seu servidor e o resolvedor upstream selecionado com DNS sobre HTTPS (DoH), enquanto o Pi-hole continua a responder aos seus clientes na rede local e a aplicar suas listas de bloqueio. O próprio Pi-hole não fornece transporte DoH para o seu servidor upstream por padrão; o proxy local fornece essa conexão criptografada.

Primeiramente, é importante saber um detalhe sobre a versão atual: a Cloudflare removeu o cloudflared proxy-dnscomando das novas versões a partir de 2 de fevereiro de 2026. Tutoriais antigos que instalam esse comando podem não funcionar com a cloudflaredversão atual. Os passos abaixo utilizam o dnscrypt-proxycomando `pi-hole do DoH`, seguindo o guia atual do Pi-hole. Essa configuração é adequada quando o Pi-hole e o proxy são executados no mesmo host Ubuntu. Uma configuração com Docker ou vários hosts requer endereçamento de listener e regras de firewall diferentes.

O que esta configuração faz e o que ela não faz.

O DNS normal geralmente envia consultas do seu resolvedor para um provedor DNS upstream sem criptografia de transporte. O DoH transporta solicitações de DNS dentro de HTTPS, dificultando que um observador de rede entre o seu servidor Pi-hole e o resolvedor leia ou altere essas solicitações. O Pi-hole continua sendo o servidor DNS anunciado para os dispositivos na sua rede local; apenas o caminho upstream dele muda.

O DoH não torna a atividade de DNS invisível para o resolvedor que você escolher. O provedor upstream ainda recebe consultas do seu servidor, e o Pi-hole pode reter o histórico de consultas do cliente de acordo com suas configurações de privacidade e registro. O HTTPS também não criptografa o tráfego da web não relacionado. Se o seu objetivo é usar um resolvedor específico, verifique a política de privacidade dele e escolha a entrada DoH correspondente na lista de resolvedores compatíveis.

Antes de começar

  • Confirme se o Pi-hole já está instalado e funcionando no Ubuntu Server 24.04. Este passo a passo configura um Pi-hole existente, em vez de instalá-lo.
  • Certifique-se de que o servidor tenha um endereço LAN estável. Se o endereço mudar, os clientes DHCP do roteador podem perder a conexão com o servidor DNS.
  • Tenha acesso de administrador e uma forma de acessar o host do Pi-hole caso o DNS pare de funcionar temporariamente. Evite fazer essa alteração remotamente por meio de uma conexão que dependa do mesmo Pi-hole para resolução de nomes.
  • Anote as configurações atuais do Pi-hole para que você possa restaurá-las durante o processo de reversão.

O proxy se vinculará apenas ao loopback na porta 5053, deixando a porta 53 para o Pi-hole. Isso evita conflitos com o serviço DNS do Pi-hole e o resolvedor local do Ubuntu. Não desative systemd-resolveda porta de loopback separada do proxy apenas para que esse design funcione; ela evita esse conflito.

1. Instale o dnscrypt-proxy a partir dos repositórios de pacotes do Ubuntu.

O projeto dnscrypt-proxy documenta um procedimento de instalação de pacotes no Ubuntu. Verifique se os repositórios do Ubuntu configurados oferecem uma opção antes de instalar:

sudo apt update
apt-cache policy dnscrypt-proxy

Se a saída mostrar uma versão candidata, instale-a:

sudo apt install dnscrypt-proxy

Se nenhum candidato for exibido, não adicione um repositório de terceiros não relacionado apenas para prosseguir. Use o método de instalação indicado no guia oficial do projeto dnscrypt-proxy para Linux, verifique a versão e a arquitetura e adapte a configuração do serviço a essa instalação. Os caminhos de configuração e da unidade de socket do systemd abaixo se aplicam à configuração do pacote Ubuntu documentada pelo Pi-hole.

2. Mova o listener do proxy para a porta 5053 do localhost.

O Pi-hole já utiliza a porta DNS padrão 53. Configure o socket do proxy para escutar em TCP e UDP em 127.0.0.1:5053, acessível apenas a partir do mesmo host. Crie um módulo drop-in do systemd:

sudo systemctl edit dnscrypt-proxy.socket

Insira essas linhas no editor e salve:

[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053

As linhas vazias ListenStream=limpam ListenDatagram=as configurações padrão do pacote antes de definir os endereços de substituição. Não as omita: caso contrário, o systemd pode manter a porta padrão além do listener personalizado.

3. Selecione um resolvedor DoH

Abra o arquivo de configuração do pacote:

sudoedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Para ativar o socket do systemd, use uma lista de listeners vazia na configuração do proxy. Escolha um nome de resolvedor na lista de resolvedores públicos assinados. Por exemplo, o seguinte seleciona o resolvedor padrão do Cloudflare; o guia do Pi-hole também mostra cloudflare-securityum exemplo de quando se deseja filtrar malware no resolvedor upstream:

listen_addresses = []
server_names = ['cloudflare']

Mantenha o restante da configuração do pacote intacta. Os nomes server_namessão identificadores de registro, não nomes de host ou caminhos de URL arbitrários. Se preferir outro provedor, verifique se a entrada do resolvedor atual oferece suporte a DoH e copie o nome exato. Um resolvedor que filtra malware ou outras categorias pode produzir resultados diferentes de um resolvedor sem filtros.

4. Configure o Pi-hole para usar o proxy local.

Configure o endereço DNS upstream do Pi-hole para o servidor local:

sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'

O #5053sufixo é a notação do Pi-hole para a porta DNS não padrão. Você também pode verificar a interface de administração do Pi-hole em Configurações > DNS . Desmarque as opções predefinidas de servidores públicos upstream e deixe o servidor personalizado 127.0.0.1#5053como upstream. Manter um resolvedor público selecionado como upstream adicional pode permitir que as consultas ignorem o proxy criptografado; portanto, remova essas entradas se você precisar que todas as consultas upstream do Pi-hole usem DoH.

5. Reinicie os serviços e verifique se o problema foi resolvido.

Reinicie o socket, o serviço proxy e o daemon FTL do Pi-hole para que carreguem a nova configuração:

sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
sudo systemctl restart pihole-FTL.service

Verificar o estado do serviço:

sudo systemctl status dnscrypt-proxy.socket
sudo systemctl status dnscrypt-proxy.service
sudo systemctl status pihole-FTL.service

Cada um deve estar ativo, sem erros de vinculação ou falhas na inicialização do resolvedor. Teste o proxy diretamente em seu servidor DNS local:

dig @127.0.0.1 -p 5053 example.com

Uma resposta DNS indica que o proxy local está respondendo. Em seguida, teste o Pi-hole na porta 53:

dig @127.0.0.1 example.com

Verifique o registro de consultas ou o painel de controle do Pi-hole para confirmar se a solicitação chegou ao Pi-hole e revise o registro do proxy caso o teste falhe:

sudo journalctl -u dnscrypt-proxy.service -b --no-pager

Para uma verificação adicional, procure nos logs de inicialização do proxy ou no registro de eventos o resolvedor selecionado e o status do protocolo DoH. Uma resposta bem-sucedida digpor si só comprova que a resolução de DNS está funcionando; não comprova, por si só, que a requisição utilizou HTTPS.

Problemas comuns e recuperação segura

  • “Endereço já em uso”: outro processo pode já estar ocupando a porta 5053, ou a substituição de socket não foi carregada. Verifique os listeners com sudo ss -lntup, revise o drop-in com systemctl cat dnscrypt-proxy.socket, e confirme se as linhas de reset vazias precedem as entradas da porta 5053.
  • O proxy está ativo, mas as consultas expiram: verifique o acesso HTTPS de saída, o nome do resolvedor e os logs do proxy. Algumas redes bloqueiam conexões DNS sobre HTTPS ou restringem a porta TCP 443.
  • O teste de proxy funciona, mas o Pi-hole não recebe resposta do servidor upstream: confirme se o Pi-hole está configurado corretamente 127.0.0.1#5053e reinicie-o pihole-FTL. Certifique-se de que as caixas de seleção padrão de upstream não estejam fornecendo silenciosamente uma rota alternativa.
  • O próprio Ubuntu não consegue resolver nomes após a alteração: esta configuração modifica o arquivo upstream do Pi-hole, não o do host /etc/resolv.conf. Evite substituir esse arquivo ou desativá-lo systemd-resolvedcomo uma solução rápida para problemas.

Para reverter, restaure a configuração de DNS upstream que você registrou no Pi-hole e reinicie pihole-FTL. Assim que o Pi-hole não apontar mais para o proxy, você poderá desativá-lo ou removê-lo dnscrypt-proxyusando o gerenciador de pacotes. Se este servidor também resolver seu próprio DNS através do Pi-hole, mantenha um caminho de recuperação local disponível antes de alterar os serviços.

Qual opção é mais adequada para a sua rede?

Use essa configuração de proxy de host único quando desejar filtragem DNS centralizada no Pi-hole e tráfego criptografado do Pi-hole para um resolvedor selecionado. É relativamente fácil de inspecionar, pois o proxy possui um único endereço e porta locais. Se você executar o Pi-hole em um contêiner Docker, em outro servidor ou em várias redes, poderá precisar de um endereço de rede de contêiner em vez de um endereço de loopback e deverá restringir o listener do proxy para que ele não seja exposto como um resolvedor aberto. Se precisar de filtragem baseada em políticas, identidade por dispositivo ou DNS criptografado para dispositivos em roaming fora de casa, configure esses clientes ou um gateway gerenciado separadamente; a conexão DoH upstream do Pi-hole não criptografa automaticamente o caminho de cada cliente para o Pi-hole.

Por fim, lembre-se de que um roteador ou cliente pode ignorar o Pi-hole se anunciar um segundo servidor DNS. Para filtragem em toda a rede, forneça aos clientes apenas o endereço do Pi-hole via DHCP e leve em consideração os anúncios de DNS IPv6, bem como os IPv4. Verifique com vários dispositivos após alterar as configurações do roteador, pois uma configuração de proxy correta no servidor não impede que um cliente use outro resolvedor diretamente.

Referências oficiais

Deixar um comentário

Como recuperar partições perdidas e dados do disco rígido com segurança

Como recuperar partições perdidas e dados do disco rígido com segurança

Aprenda como recuperar partições e arquivos perdidos com o TestDisk e o PhotoRec. Proteja a unidade de origem, faça a verificação com segurança e salve os dados recuperados em outro disco.

Como ler códigos QR em um computador Linux

Como ler códigos QR em um computador Linux

Escaneie códigos QR no Linux com o CoBang usando uma webcam ou um arquivo de imagem. Veja as opções de instalação, etapas de configuração e correções para acesso à câmera via Flatpak.

Como alterar as configurações da webcam no Linux com o Cameractrls

Como alterar as configurações da webcam no Linux com o Cameractrls

Altere as configurações da webcam no Linux com o Cameractrls: ajuste a exposição, a cor, a redução de cintilação e outros controles compatíveis e, em seguida, verifique os modos de vídeo compatíveis.

Como instalar o PhpStorm no Linux: Toolbox, Tar.gz, Snap e AUR

Como instalar o PhpStorm no Linux: Toolbox, Tar.gz, Snap e AUR

Instale o PhpStorm no Linux com o JetBrains Toolbox ou o arquivo tar.gz independente, além das opções Snap e Arch AUR. O Java já está incluído.

Como configurar dois painéis no XFCE 4

Como configurar dois painéis no XFCE 4

Crie um painel XFCE 4 separado para cada tela, atribua o segundo painel à saída correta, posicione-o e dimensione-o e adicione os atalhos e itens de status necessários.

Como instalar o Cisco Packet Tracer no Linux

Como instalar o Cisco Packet Tracer no Linux

Baixe o Cisco Packet Tracer 9.0.1 para Ubuntu 64 bits, instale o pacote DEB com o APT, aceite a licença no Terminal e faça login para iniciar um laboratório.

Como recortar uma imagem no Linux com o GIMP

Como recortar uma imagem no Linux com o GIMP

Remova o fundo de uma foto no Linux com o GIMP: trace o contorno do objeto, exclua o fundo selecionado, mantenha a transparência e exporte um PNG reutilizável.

Como fazer backup de um CD-ROM como um arquivo ISO no Linux

Como fazer backup de um CD-ROM como um arquivo ISO no Linux

Crie uma imagem ISO de CD-ROM no Linux com o GNOME Disks ou o comando dd. Identifique a unidade óptica, monitore a cópia, verifique a imagem e saiba quando um disco danificado ou de áudio precisa de outra ferramenta.

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente no site oficial. Compare os pacotes para Windows, macOS e Linux, instale os arquivos de dados e inicie seu primeiro voo.

Aplicativo Google Tasks para desktop: como usá-lo no computador

Aplicativo Google Tasks para desktop: como usá-lo no computador

Abra o Google Tasks em um navegador, adicione um atalho do Chrome ou inicie o aplicativo automaticamente e gerencie suas tarefas agendadas pelo Agenda e pelo Gmail.