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