Okej, poradnik o blokowaniu reklam przez DNSy wygrał (57,5% głosów). Okazało się jednak, że chciałbym pokryć nie tylko NextDNSa, ale i też Adguard DNS czy Pi-hole'a.


Niestety w przypadku Adguarda dostaję błędy o rzekomo „zbyt dużej ilości żądań w krótkim czasie”, zaś w przypadku Pi-hole'a nie mam własnego Raspberry Pi, i na dodatek mój dostawca internetu blokuje możliwość zmiany serwerów DNS.


Jeżeli chcielibyście się przyłączyć do tworzenia tekstu w kontekście Adguarda i/lub Pi-hole'a, swoje teksty możecie wysyłać na [email protected]. Każda osoba, której tekst zdecydujemy się opublikować, otrzyma na początku wskazanego segmentu adnotację o autorstwie. Z góry dzięki za pomoc!


#kontrabanda

Komentarze (3)

dolitd

Pi-hole.


0) Co będzie potrzebne


Raspberry Pi 3/4/5, karta micro-SD (min. 16 GB), zasilacz 5 V.


Połączenie z routerem (najlepiej kablem Ethernet).


System Raspberry Pi OS Lite (64-bit) lub Docker (jeśli wolisz kontenery).


Dostęp do konfiguracji routera, aby zmienić DNS albo zgoda na uruchomienie DHCP z Pi-hole.





1) Plan sieci (ustal przed instalacją)


Nadaj Pi stały adres IP, np. 192.168.1.2.


Wybierz sposób działania DNS:


1. Najlepiej – w routerze ustaw DNS na Pi-hole.


2. Jeśli router nie pozwala – Pi-hole przejmuje DHCP i rozsyła siebie jako DNS.


3. Ostateczność – ustaw DNS ręcznie na każdym urządzeniu.


IPv6: jeśli operator wymusza IPv6, trzeba także ustawić Pi-hole jako DNS IPv6 albo wyłączyć IPv6 w sieci.





2A) Instalacja na Raspberry Pi OS (bez Dockera)


1. Wgraj Raspberry Pi OS Lite na kartę SD i uruchom Pi. Zaloguj się.


2. Nadaj statyczny IP (przykład dla 192.168.1.2 i bramy 192.168.1.1):


sudo -s

apt update && apt -y full-upgrade

raspi-config nonint do_hostname pihole

cat >> /etc/dhcpcd.conf <<'EOF'

interface eth0

static ip_address=192.168.1.2/24

static routers=192.168.1.1

static domain_name_servers=1.1.1.1 1.0.0.1

EOF

systemctl restart dhcpcd


3. Zainstaluj Pi-hole:


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


W instalatorze wybierz:


Serwer DNS (np. Cloudflare, Quad9).


Domyślne listy blokowania.


Panel WWW – tak.


Adres panelu: http://192.168.1.2/admin. Hasło można zmienić: pihole -a -p.





2B) Instalacja w Dockerze (opcjonalnie)


1. Instalacja Dockera:


curl -fsSL https://get.docker.com | sh

usermod -aG docker $USER


2. Plik docker-compose.yml:


services:

pihole:

image: pihole/pihole:latest<br />

container\_name: pihole<br />

hostname: pihole<br />

restart: unless\-stopped<br />

networks: \{ lan: \{ ipv4\_address: 192\.168\.1\.2 \} \}<br />

ports:<br />

  \- "53:53/tcp"<br />

  \- "53:53/udp"<br />

  \- "80:80/tcp"<br />

environment:<br />

  TZ: "Europe/Warsaw"<br />

  WEBPASSWORD: "ZmienMnie\!"<br />

  FTLCONF\_LOCAL\_IPV4: "192\.168\.1\.2"<br />

volumes:<br />

  \- \./etc\-pihole:/etc/pihole<br />

  \- \./etc\-dnsmasq\.d:/etc/dnsmasq\.d<br />

networks:

lan:

driver: bridge<br />

ipam:<br />

  config: \[\{ subnet: 192\.168\.1\.0/24 \}\]<br />

3. Uruchom:


docker compose up -d





3) Skierowanie ruchu przez Pi-hole


Opcja A – DNS w routerze (najlepsza):

W ustawieniach DHCP routera ustaw DNS = 192.168.1.2. Usuń zapasowy DNS.


Opcja B – Pi-hole jako DHCP:

W panelu Pi-hole → Settings → DHCP → włącz serwer DHCP, podaj zakres adresów i bramę. Wyłącz DHCP w routerze.


Opcja C – ręcznie na urządzeniach:

Na komputerach/telefonach wpisz DNS = 192.168.1.2.





4) (Opcjonalnie) Prywatne i bezpieczne DNS


A) Unbound (lokalny resolver)


Instalacja:


sudo apt -y install unbound

sudo wget -O /var/lib/unbound/root.hints https://www.internic.net/domain/named.root


Plik /etc/unbound/unbound.conf.d/pi-hole.conf:


server:

interface: 127.0.0.1

port: 5335

do-ip4: yes

do-ip6: no

do-udp: yes

do-tcp: yes

cache-min-ttl: 60

cache-max-ttl: 86400

qname-minimisation: yes

root-hints: "/var/lib/unbound/root.hints"


Włącz usługę:


sudo systemctl enable --now unbound


W panelu Pi-hole ustaw 127.0.0.1#5335 jako jedyny serwer DNS.


B) DNS-over-HTTPS (Cloudflared)


wget -O cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb

sudo dpkg -i cloudflared.deb


Plik /etc/cloudflared/config.yml:


proxy-dns: true

proxy-dns-port: 5053

proxy-dns-address: 127.0.0.1

upstream:

- https://1.1.1.1/dns-query

- https://1.0.0.1/dns-query


Uruchom:


sudo systemctl enable --now cloudflared


W Pi-hole ustaw 127.0.0.1#5053 jako DNS.





5) Listy blokowania i dostrajanie


Domyślne listy wystarczą na start. Popularne dodatkowe: StevenBlack, OISD full. Whitelist – tylko gdy coś się psuje.


Regex – np. (\.|^)adservice\.google\.com$.


Conditional Forwarding pozwala widzieć nazwy hostów lokalnych.





6) Test działania


Na komputerze:


nslookup pi-hole.net 192.168.1.2

nslookup doubleclick.net 192.168.1.2


W panelu sprawdź, czy zapytania rosną i czy są blokady.





7) Aktualizacje i kopie zapasowe


Aktualizacja:


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

pihole -up


Kopia: Settings → Teleporter.


Jeśli Docker – kopia katalogów etc-pihole i etc-dnsmasq.d.





8) Typowe problemy


Router wymusza DNS operatora → użyj Pi-hole jako DHCP.


Reklamy przez IPv6 → ustaw DNS IPv6 albo wyłącz IPv6.


Portale logowania w hotelach/na gościnnym Wi-Fi → tymczasowo wyłącz Pi-hole (przycisk Disable).


Wolne odpowiedzi przy Unbound – normalne przy pierwszych zapytaniach (cache się rozgrzewa).





9) Jak wyłączyć / wycofać


Przywróć DNS w routerze na automatyczne.


Jeśli Pi-hole działało jako DHCP – wyłącz i włącz DHCP w routerze.


Zatrzymaj Dockera lub sudo systemctl stop pihole-FTL.

kontrabanda

@dolitd: fajnie, że przesłałeś swoją propozycję, ale mi bardziej chodziło o tekst, który mógłby nakierować osobę nie mającej zbytniej znajomości z technologią. Choć tekst faktograficznie jest w porządku, to zależy nam na tym, żeby też był możliwie najprostszy do zrozumienia.

dolitd

@kontrabanda To nie miało być użyte na stronce, tylko skorzystałem z okazji, żeby opisać proces blokowania reklam przez Pi-hole dla użytkowników Hejto.

Zaloguj się aby komentować