Guia 2 de 2 · Raspberry Pi 3, 4, 5 ou Zero 2 W

Pi-hole no Raspberry Pi

Um bloqueador pra casa toda, ligado 24 horas num aparelho do tamanho de um baralho. Uns 45 minutos, a maior parte esperando o cartão gravar.

No fim deste guia, todo aparelho que entra no Wi-Fi de casa passa a perguntar pro Pi-hole, sem instalar nada neles. É o que eu uso em casa. No final tem o passo opcional pra levar a proteção pro celular fora de casa.

O que precisa
ModeloFonte recomendadaConector
Raspberry Pi 3 (todos) e Zero 2 W5 V, 2,5 A (12,5 W)Micro-USB
Raspberry Pi 45 V, 3 A (15 W)USB-C
Raspberry Pi 55 V, 5 A (27 W); com 3 A funciona pro Pi-holeUSB-C

01Preparar o Raspberry

Passo 1

Gravar o sistema no cartão

No seu PC, instale o Raspberry Pi Imager e coloque o cartão no leitor. No Imager:

  1. Device: o modelo do seu Pi.
  2. OS: escolha Raspberry Pi OS Lite (64-bit). Dependendo da versão do Imager, ela fica dentro de um submenu “other”. A versão Lite não tem área de trabalho, e o Pi-hole não precisa de uma.
  3. Storage: o cartão. Confira duas vezes: ele vai ser apagado.
  4. Customisation (é aqui que você economiza teclado e monitor):
    • Hostname: pihole
    • Localisation: uma cidade do Brasil, pra ajustar fuso e teclado.
    • User: um usuário em minúsculas e uma senha. Anote.
    • Wi-Fi: só se não for usar cabo.
    • Remote Access: ligue Enable SSH com Use password authentication.

Mande gravar e espere terminar a verificação.

Passo 2

Ligar e entrar no Pi pelo PC

Coloque o cartão no Pi, ligue o cabo de rede e depois a fonte. Espere uns 2 minutos. No PC, abra o Terminal e entre (troque usuario pelo usuário que você criou):

ssh usuario@pihole.local

Na primeira vez ele pergunta se confia no aparelho: digite yes e depois a senha. Se pihole.local não for encontrado, procure o Pi na lista de aparelhos conectados do roteador e use o endereço dele, por exemplo ssh usuario@192.168.1.60.

Se ele aparecer como raspberrypi, ou a senha não funcionar, a personalização do Imager não foi aplicada (algumas versões do Imager têm esse bug). Atualize o Imager e grave de novo.

Passo 3

Dar um endereço fixo pro Pi

O roteador vai mandar todo mundo perguntar pra esse endereço, então ele não pode mudar. No painel do roteador, procure por reserva de DHCP (também aparece como “IP fixo”, “DHCP estático” ou “Address Reservation”) e reserve o endereço atual do Pi. Anote esse endereço: ele aparece no resto do guia como 192.168.1.60.

Pra ver o endereço atual, dentro do Pi:

hostname -I

02Instalar o Pi-hole

Passo 4

Atualizar o sistema

sudo apt update && sudo apt full-upgrade -y
sudo reboot

Pode levar alguns minutos. Depois do reboot, entre de novo com o ssh do passo 2.

Passo 5

Rodar o instalador oficial

curl -sSL https://install.pi-hole.net | bash

Ele abre umas telas azuis com perguntas. Use as setas, a barra de espaço e o Enter:

No fim, ele mostra o endereço do painel e uma senha. Troque pela sua:

sudo pihole setpassword
Passo 6

Abrir o painel

No navegador do PC, abra http://pihole.local/admin (ou http://192.168.1.60/admin) e entre com a senha.

Passo 7

Ligar as listas certas

No menu lateral, abra Lists. Em Address, cole as duas linhas abaixo juntas (o Pi-hole aceita várias separadas por espaço), escreva “HaGeZi” no comentário e clique em Add blocklist:

https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/tif.medium.txt
Página Lists do Pi-hole com StevenBlack, HaGeZi Pro e HaGeZi Threat Intelligence medium adicionadas
As duas listas do HaGeZi adicionadas ao lado da StevenBlack, que veio do instalador.

A primeira é a HaGeZi Pro (anúncio e rastreamento). A segunda é a lista de ameaças na versão média, que cabe folgada num Pi 3 ou 4. Num Zero 2 W, se ficar lento, use só a primeira. Agora aplique: no menu, Tools → Update Gravity → Update. Quando aparecer Done., está valendo.

Tela Update Gravity concluída, com mais de 970 mil domínios únicos
Gravity atualizado: perto de 1 milhão de domínios bloqueados.
Não adicione a lista “doh-vpn-proxy-bypass”

Ela bloqueia os serviços de VPN. Eu adicionei no meu Pi-hole e o Tailscale parou pra todo mundo da casa por uns 15 minutos. Se quiser impedir que app use DNS próprio, a versão segura é a adblock/doh.txt do mesmo autor, que bloqueia só os servidores de DNS.

03Ligar na casa toda

Passo 8

Apontar o roteador pro Pi

No painel do roteador, procure a configuração de DHCP ou LAN, onde aparecem os servidores de DNS entregues aos aparelhos.

Salve. Os aparelhos pegam a configuração nova quando reconectam: desligue e ligue o Wi-Fi do celular, ou espere algumas horas.

Roteador de operadora que não deixa mudar o DNS é comum. Se for o seu caso, veja “O roteador não deixa trocar o DNS” nos problemas comuns.

Passo 9

Testar

Num PC da casa (já reconectado), no Terminal:

nslookup doubleclick.net
nslookup logger.controlium.net
nslookup g1.globo.com

Na resposta, o servidor tem que ser o Pi. Os dois primeiros voltam 0.0.0.0 e o terceiro, um endereço normal. Depois veja o Query Log no painel:

Query Log do Pi-hole com domínios de anúncio bloqueados e sites normais permitidos
Ícone vermelho é bloqueado; o botão no fim de cada linha permite ou bloqueia aquele domínio. No seu, cada aparelho aparece com o próprio endereço.

O Dashboard dá o resumo:

Dashboard do Pi-hole com total de consultas, bloqueios e domínios nas listas
Este é de um teste com sites cheios de anúncio. No uso normal da casa, a porcentagem é menor.

04Opcional: o celular protegido fora de casa

Fora do Wi-Fi de casa, o celular pergunta pra operadora e o Pi-hole não vê nada. O Tailscale (grátis pra uso pessoal) cria uma rede privada entre os seus aparelhos e pode mandar todos usarem o Pi-hole como DNS, de onde estiverem. É o que eu fiz no meu.

Passo 10, opcional

Pi-hole como DNS do Tailscale

  1. Crie a conta no Tailscale e instale o app no celular.
  2. No Pi, instale e conecte. O --accept-dns=false é importante, porque o Pi é o próprio DNS:
    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up --accept-dns=false
    Abra o link que ele mostrar e entre com a mesma conta. Anote o endereço do Pi que aparece no painel do Tailscale (começa com 100.).
  3. No painel do Tailscale, em DNS: Add nameserver → Custom, coloque o endereço 100.x.y.z do Pi e salve. Ligue Override DNS servers.
  4. No Pi-hole: Settings → DNS, troque de Basic pra Expert no canto e marque Permit all origins. Salve.

Com o Tailscale ligado no celular, ele usa o Pi-hole em qualquer lugar. Duas regras: nunca abra a porta 53 do roteador pra internet, e use uma senha forte no painel. Se o Pi cair, desligue o Tailscale no celular e a internet volta.

05Manutenção

Botão de pânico: a casa ficou sem internet

O Pi é o único DNS da casa. Se ele cair, os sites param de abrir pra todo mundo: o Wi-Fi continua conectado, mas nada carrega. Pra voltar na hora:

  1. No painel do roteador, volte o DNS do DHCP pra automático ou pro da operadora.
  2. Se você usou o DHCP do Pi-hole (veja abaixo), desligue o Pi da tomada e religue o DHCP do roteador. Os dois nunca podem ficar ligados juntos.
  3. Reconecte os aparelhos. Depois, com calma, veja o que houve com o Pi.

06Problemas comuns

O roteador não deixa trocar o DNS

Muito roteador de operadora trava esse campo. A saída é o Pi-hole assumir o DHCP, que é quem distribui endereço e DNS pros aparelhos. Os dois não podem ficar ligados ao mesmo tempo, então siga nesta ordem:

  1. No Pi-hole: Settings → DHCP. Ligue o servidor DHCP, informe o endereço do roteador como gateway e uma faixa de endereços (por exemplo de .100 a .200). Salve.
  2. No roteador: desligue o servidor DHCP.
  3. Reconecte os aparelhos.

Se der errado, religar o DHCP do roteador desfaz tudo.

Funciona no PC mas o celular não bloqueia nada
Pouca coisa bloqueada, ou alguns aparelhos escapam (IPv6)

Muito roteador entrega também um DNS em IPv6, e os aparelhos usam esse por fora do Pi-hole. Se o roteador tiver opção de DNS IPv6 manual, coloque o mesmo do Pi. Se não tiver, desligar o IPv6 da rede local resolve, e em casa ele não faz falta.

Confira também o “DNS seguro” do navegador (Chrome, Edge e Firefox têm), e se tem VPN ligada.

No Query Log só aparece o roteador como cliente

O roteador está repassando as perguntas em vez de mandar os aparelhos falarem direto com o Pi. O bloqueio funciona igual, você só não vê aparelho por aparelho. Pra ver, use o DHCP do Pi-hole (primeiro item desta lista).

Mudei as listas e nada mudou

Toda mudança de lista precisa do Update Gravity. Se mesmo assim um domínio continuar com a resposta antiga, limpe o cache:

sudo pihole -g
sudo pihole reloaddns
O Pi trava ou reinicia sozinho

Quase sempre é fonte fraca. Pra conferir, no Pi:

vcgencmd get_throttled

A resposta throttled=0x0 é o normal. Qualquer outra coisa indica falta de energia: troque pela fonte da tabela lá em cima.

“ssh” não é reconhecido, ou pihole.local não é encontrado

Pesquise “Recursos opcionais” no menu Iniciar e instale o Cliente OpenSSH. No Windows 10 e 11 atualizados ele já vem instalado. Se o nome pihole.local não resolver, use o endereço do Pi que aparece na lista de aparelhos do roteador.

Esqueci a senha do painel
sudo pihole setpassword

Fontes

  1. Pi-hole: pré-requisitos e instalação
  2. Pi-hole: depois de instalar (roteador, DHCP)
  3. Raspberry Pi: getting started (Imager e fontes)
  4. Tailscale: Pi-hole como DNS da tailnet
  5. HaGeZi DNS blocklists