{"id":1907,"date":"2023-08-02T15:50:50","date_gmt":"2023-08-02T13:50:50","guid":{"rendered":"https:\/\/my.stargazer.at\/?p=1907"},"modified":"2023-08-02T15:50:50","modified_gmt":"2023-08-02T13:50:50","slug":"settling-the-adguard-vs-pihole-debate-for-good","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2023\/08\/02\/settling-the-adguard-vs-pihole-debate-for-good\/","title":{"rendered":"AdGuard vs PiHole Hands on"},"content":{"rendered":"<p>Heutzutage im Internet unterwegs zu sein ohne AdBlocker ist eines der Dinge, die ich mir schon nicht mehr vorstellen mag. Ernsthaft! \u00dcberall Werbung und die frisst sogar noch meine Bandbreite. Auf (m)einem PC habe ich oft genug M\u00f6glichkeiten um Werbung im Browser zu blockieren - aber bei manchen Dingen geht das nicht so einfach; Die L\u00f6sung dazu ist oftmals DNS Blocking - ein bewusstes 'nicht finden' von Seiten im Internet die eben Werbung bzw Tracker hosten.<\/p>\n<p>Um einmal aufzuzeigen, wie effektiv Werbung die Bandbreite fressen kann erinnere ich mich an ein Studentenwohnheim, wo ein DNS Blocker als letzter Versuch herhalten musste um bei der damaligen Internet-Leitung etwas Linderung zu bringen. Remote-Desktop-Verbindungen in das Studentenheim waren erst durch den Einsatz des Blockers wieder m\u00f6glich, da er die vielen eingebetteten Werbe-Videos auf Webseiten blockierte. Eine Idee auf die ich heute noch stolz bin.<\/p>\n<p>Wenn man nach DNS Blockern im Netz sucht, st\u00f6\u00dft man unweigerlich auf <a href=\"https:\/\/adguard.com\/en\/adguard-home\/overview.html\">AdGuard Home<\/a> und <a href=\"https:\/\/pi-hole.net\/\">PiHole<\/a> und schier endlose Debatten, welcher nun besser sei. Da ich aber lieber Fakten und Zahlen sehe, habe ich mir in meinem Homelab auf meinem Proxmox Server, einem AMD EPYC 7282 16-Kerner, zwei Container eingebaut. Selbe Hardware, selbe Voraussetzungen via Docker.<\/p>\n<p>Auf den ersten Blick sind beide Kandidaten Open Source Projekte mit ihrer Community, vielen (zus\u00e4tzlichen) Blocklisten die man laden kann - also ziemlich alles was man so braucht. AdGuard Home kann auch noch DoH und DoT, welche ich hier in meinem Heimnetzwerk als Funktion nicht brauche, da ich meinem Netzwerk vertraue - Irgendwo muss man einmal die Linie ziehen. Um aber auch Verschl\u00fcsselung testen zu k\u00f6nnen habe ich einfach Traefik vor PiHole geklemmt. AdGuard punktet in Sachen Funktionalit\u00e4t noch zus\u00e4tzlich dadurch, dass 'safe-search' erzwungen werden kann. Interessant mit Kindern, aber da ich hier das einzige Spielkind bin, vernachl\u00e4ssigbar. AdGuard punktet hier deutlich mit einfacheren Setup, wobei ich die Konfiguration \u00fcber docker-compose ohne Assistenten bei piHole f\u00fcr meinen Andwendungsfall praktischer finde.<\/p>\n<p>Die Einrichtung ist aber nicht wirklich etwas, was ich besonders oft mache - im Normalfall einmal und das war's - also gibt es f\u00fcr mich nicht viel Unterschied. Also ab zur Benutzung.<\/p>\n<p>Ich habe mich f\u00fcr die firehol.net-Blocklisten entschieden, welche ich der Fairness halber in beide Systeme eingespielt habe. Klarer Gewinner: PiHole, weil er diese auf einmal importieren kann. AdGuard hingegen mit seinem schickeren UI kann diese Funktion nicht. <\/p>\n<p>Wie sieht es mit RAM Verbrauch aus? AdGuard hatte sich bei etwa 250 MB eingependelt:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1909\" src=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer.png\" alt=\"\" width=\"2226\" height=\"531\" srcset=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer.png 2226w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-300x72.png 300w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-1024x244.png 1024w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-150x36.png 150w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-768x183.png 768w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-1536x366.png 1536w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/adguard-portainer-2048x489.png 2048w\" sizes=\"auto, (max-width: 2226px) 100vw, 2226px\" \/><\/p>\n<p>PiHole, da ich diesen l\u00e4nger laufen hatte, hatte sich bereits bei 100 MB angesiedelt.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1910\" src=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer.png\" alt=\"\" width=\"2228\" height=\"528\" srcset=\"https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer.png 2228w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-300x71.png 300w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-1024x243.png 1024w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-150x36.png 150w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-768x182.png 768w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-1536x364.png 1536w, https:\/\/my.stargazer.at\/wp-content\/uploads\/2023\/08\/pihole-portainer-2048x485.png 2048w\" sizes=\"auto, (max-width: 2228px) 100vw, 2228px\" \/><\/p>\n<p>Angeblich sollte piHole mehr RAM fressen als AdGuard. Nichts was ich in meinem Versuch hier reproduzieren konnte - im Gegenteil.<\/p>\n<p>Um jetzt zum DNS zu kommen - dort wo es nun wirklich interessant wird - schauen wir uns die Latenz an. Der Versuch besteht aus 2 Abfragen hintereinander, damit der DNS Zeit hat die Anfrage zu cachen und wir nicht auf externe DNS zur\u00fcckgreifen m\u00fcssen, die uns den test verf\u00e4lschen. Um einfach einmal eine Baseline zu haben, fragte ich erstmal bei Googles 8.8.8.8 an und verwendete 'time' um den 'dig' command zu timen. Dabei zeigt 'real' die vergangene Zeit an.<\/p>\n<pre>\r\ntest@ts ~ $ time dig google.de @8.8.8.8\r\n\r\n; <<>> DiG 9.16.41 <<>> google.de @8.8.8.8\r\n;; global options: +cmd\r\n;; Got answer:\r\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55953\r\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\r\n\r\n;; OPT PSEUDOSECTION:\r\n; EDNS: version: 0, flags:; udp: 512\r\n;; QUESTION SECTION:\r\n;google.de.                     IN      A\r\n\r\n;; ANSWER SECTION:\r\ngoogle.de.              299     IN      A       142.250.180.227\r\n\r\n;; Query time: 64 msec\r\n;; SERVER: 8.8.8.8#53(8.8.8.8)\r\n;; WHEN: Wed Aug 02 15:00:37 CEST 2023\r\n;; MSG SIZE  rcvd: 54\r\n\r\n\r\nreal    0m0.078s\r\nuser    0m0.004s\r\nsys     0m0.004s\r\n<\/pre>\n<p>Google legt dank Netzwerklatenz mit 78ms vor. Nicht schlecht.<\/p>\n<p>Mein interner Bind9 Server legte mit 43ms nach. Nicht wirklich super, aber auch nicht schlecht f\u00fcr das LDAP Backend und Krempel die dieser intern macht. PiHole zieht allen mit 18ms davon, w\u00e4hrend AdGuard Home mit 21ms den zweiten Platz belegt. Mit anderen Worten, die 3ms Unterschied merkt man im realen Betrieb nicht. Was hei\u00dft das jetzt f\u00fcr jeden Einzelnen? Ganz ehrlich: Ich w\u00fcrde beide L\u00f6sungen testen und dann sehen wie wichtig einem Statistiken bzw ein schickes UI sind. Ich f\u00fcr meinen Teil bleibe auf jeden Fall bei piHole, da mir adGuard Home keine Vorteile bringt.<\/p>","protected":false},"excerpt":{"rendered":"<p>Heutzutage im Internet unterwegs zu sein ohne AdBlocker ist eines der Dinge, die ich mir schon nicht mehr vorstellen mag. Ernsthaft! \u00dcberall Werbung und die frisst sogar noch meine Bandbreite. Auf (m)einem PC habe ich oft genug M\u00f6glichkeiten um Werbung im Browser zu blockieren &#8211; aber bei manchen Dingen geht das nicht so einfach; Die L\u00f6sung dazu ist [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1907","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1907"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1907\/revisions"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}