• zordaz
  • Registratie: Januari 2002
  • Laatst online: 11:18
Glassertje schreef op maandag 9 februari 2026 @ 14:45:
[...]

Ik gebruik keepalived met 2 raspberry pi's en AGH. Met 1 virtueel ip zijn beide Pi's. Verbonden. Als de ene niet reageert, dan reageert de andere. @stormfly heeft de config hier in het topic gepost.
Dat heb ik inderdaad ook zo draaien (2x AGH via Docker). Het werkt behoorlijk goed, maar met 1 beperking: het is afhankelijk van het host ip adres. Dus als je host wel draait, maar de Master AGH container functioneert niet goed, dan komt de Slave niet in actie. En dus loopt de DNS resolving dan alsnog spaak. Ik heb van alles geprobeerd, maar krijg een extra controle hierop niet aan de praat.

  • Glassertje
  • Registratie: September 2020
  • Laatst online: 25-06 21:07
zordaz schreef op maandag 9 februari 2026 @ 16:09:
[...]


Dat heb ik inderdaad ook zo draaien (2x AGH via Docker). Het werkt behoorlijk goed, maar met 1 beperking: het is afhankelijk van het host ip adres. Dus als je host wel draait, maar de Master AGH container functioneert niet goed, dan komt de Slave niet in actie. En dus loopt de DNS resolving dan alsnog spaak. Ik heb van alles geprobeerd, maar krijg een extra controle hierop niet aan de praat.
Ik gebruik geen docker op de pi

Beide pi's zijn in keepalived BACKUP zodat ik nopreempt optie kan gebruiken. Zo heb je dan geen onnodige VIP-wissels. Vind het niet nodig als de 1e AGH install terug reageert, dat die dan weer overspringt. Dit gebeurd pas als de andere AGH niet reageert. En tot nu toe werkt het vlekkeloos.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
zordaz schreef op maandag 9 februari 2026 @ 16:09:
[...]


Dat heb ik inderdaad ook zo draaien (2x AGH via Docker). Het werkt behoorlijk goed, maar met 1 beperking: het is afhankelijk van het host ip adres. Dus als je host wel draait, maar de Master AGH container functioneert niet goed, dan komt de Slave niet in actie. En dus loopt de DNS resolving dan alsnog spaak. Ik heb van alles geprobeerd, maar krijg een extra controle hierop niet aan de praat.
Dat is wel mogelijk hoor, maar dan moet je zelf een healthcheck scriptje maken voor AGH. In bijvoorbeeld /etc/keepalived/check_service.sh. Die moet executable zijn.
Bash:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

HOST=127.0.0.1
PORT=3000

nc -z "$HOST" "$PORT" >/dev/null 2>&1
if [ $? -eq 0 ]; then
    exit 0   # OK
else
    exit 1   # FAIL
fi
/etc/keepalived/keepalived.conf:
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vrrp_script chk_service {
    script "/etc/keepalived/check_service.sh"
    interval 2
    timeout 2
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 200
    advert_int 1

    virtual_ipaddress {
        10.0.0.100
    }

    track_script {
        chk_service
    }
}
Er zijn vast slimmere manieren om AGH te monitoren, maar dit kwam nu bij mij even uit de hoge hoed

  • tomdh76
  • Registratie: Maart 2015
  • Laatst online: 12:33
Villager schreef op donderdag 5 februari 2026 @ 17:49:
[...]


Ik heb op Adguard Dashboard pagina 2 waarden die de responsetijden weergeven.

Onder Algemene Statistieken > Gemiddelde procestijd: 6 ms

en onder Gemiddelde upstream responstijd> Gemiddelde upstream responstijd voor de afgelopen 24 uren
127.0.0.1:5335 32 ms
gemiddelde procestijd is bij mij 19 ms en 127.0.0.1:5335 445 ms. Vooral deze laatste vind ik vrij traag. Misschien dat het aan Ipv6 ligt. Die heb jij uit staan en gebruik ik wel.

  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 11:18
lolgast schreef op maandag 9 februari 2026 @ 16:38:
[...]

Dat is wel mogelijk hoor, maar dan moet je zelf een healthcheck scriptje maken voor AGH. In bijvoorbeeld /etc/keepalived/check_service.sh. Die moet executable zijn.
Bash:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

HOST=127.0.0.1
PORT=3000

nc -z "$HOST" "$PORT" >/dev/null 2>&1
if [ $? -eq 0 ]; then
    exit 0   # OK
else
    exit 1   # FAIL
fi
/etc/keepalived/keepalived.conf:
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vrrp_script chk_service {
    script "/etc/keepalived/check_service.sh"
    interval 2
    timeout 2
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 200
    advert_int 1

    virtual_ipaddress {
        10.0.0.100
    }

    track_script {
        chk_service
    }
}
Er zijn vast slimmere manieren om AGH te monitoren, maar dit kwam nu bij mij even uit de hoge hoed
Dank, ik ga weer eens een poging wagen. Zo'n scriptje kreeg ik indertijd dus niet werkend (het deed gewoon niets), wat ik ook probeerde.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
zordaz schreef op dinsdag 10 februari 2026 @ 10:29:
[...]


Dank, ik ga weer eens een poging wagen. Zo'n scriptje kreeg ik indertijd dus niet werkend (het deed gewoon niets), wat ik ook probeerde.
Had je het script wel executable gemaakt?
chmod +x ...

  • Villager
  • Registratie: September 2013
  • Laatst online: 24-06 07:16
Ik heb de setup met een failover van de Adguard home server al vaker voorbij zien komen. Maar als je Adguard Home op je OPNsense systeem draait dan is daar toch geen noodzaak voor? Immers, geen OPNsense = geen Internet.

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
tomdh76 schreef op maandag 9 februari 2026 @ 19:38:
[...]


gemiddelde procestijd is bij mij 19 ms en 127.0.0.1:5335 445 ms. Vooral deze laatste vind ik vrij traag. Misschien dat het aan Ipv6 ligt. Die heb jij uit staan en gebruik ik wel.
Hier staat die ingesteld op 7 dagen weergave.
Unbound reactie is 154ms.
Maar in AGH 9ms (ivm caching)

Heb ook al wat zitten spelen met settings maar het wil maar niet zakken wat ik probeer.
Indien in Unbound ervantussen haal, en upstream dan Cloudlfare, en na paar dagen heb ik 1ms.

[ Voor 6% gewijzigd door TheCeet op 10-02-2026 13:26 ]


  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 15:13
Villager schreef op dinsdag 10 februari 2026 @ 10:32:
Ik heb de setup met een failover van de Adguard home server al vaker voorbij zien komen. Maar als je Adguard Home op je OPNsense systeem draait dan is daar toch geen noodzaak voor? Immers, geen OPNsense = geen Internet.
Mee eens.
Alhoewel de AGH plugin voor OPNsense in het verleden weleens "brak" na een OPNsense versie update.
Dus ja er is voor allebei wel iets te zeggen.

mijn verzameling A.I. afbeeldingen


  • Glassertje
  • Registratie: September 2020
  • Laatst online: 25-06 21:07

  • RobbyTown
  • Registratie: April 2007
  • Niet online

RobbyTown

Godlike

Nu met ControlD aan de slag maar self hosted heeft toch wel wat. Zeker de interface van Adguard Home spreekt erg aan. Nog net wat cleaner/simpeler dan ControlD.

Hopelijk heb ik hier alle Adguard Home experts bijelkaar om een juiste setup op te zetten.

Hardware:
NanoPi Neo 512M met 16GB opslag. Deze heb ik 2x.

Software: DietPi (vooraf via dietpi.txt een en ander instellen: static ip, hostname).

De bedoeling. Aangezien ik 2x NanoPi Neo hebt 2x Adguard Home 2x draaien 1x primair en 1x secundair.

Het meest simpele is 1x Adguard Home en van DietPi software Adguard Home gekozen. Dat werkt. Maar dan heb redundantie. Dat is nou net wel de bedoeling als er 1 aan het updaten is of plots offline gaat.

Nu heb ik door het topic zitten te neuzen. Mij is niet helemaal duidelijk wat nu beste / simpelste is met redundantie.

Adguard via docker-ce of via de Adguard Home software van keuze van DietPi (nummer 126)?
Adguard-sync of keepalive?

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe - Globalping Probe


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
@RobbyTown
Ondersteund je DHCP niet het opgeven van 2 DNS servers? Dan vul je daar simpelweg je beide NanoPi instances in.

AdguardHome Sync is geen HA software, het is een replicatietool van de configuratie. Als een Adguard Home instance uitvalt gaat AGH Sync niets voor je doen ;)
Als je DHCP server geen 2 DNS servers ondersteund is keepalived een goede oplossing in mijn ogen

  • RobbyTown
  • Registratie: April 2007
  • Niet online

RobbyTown

Godlike

@lolgast Aha ok.

DHCP goeie aanvulling. Zag dat in Adguard Home zit maar DHCP blijft lekker via de router (Draytek) en in de Draytek kan ik 2x DNS kwijt (nu dus die van ControlD ipv Quad9). Maar dat gaat dus 2x de NamoPi worden (als AGH erop heb geïnstalleerd).

Kortom 2x apart optuigen. 2x nog wat handmatig extra blocklists toevoegen ( Hagezi ) en klaar dus?

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe - Globalping Probe


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
@RobbyTown
Als je Adguard Home Sync draait hoef je dus in principe maar 1 node aan te passen, gaat de andere vanzelf na x-tijd. Ik heb het zelf ook draaien, maar dat is met name om te zorgen dat apparaat-specifieke blocks gelijk blijven. Blocklists komt zo weinig voor dat ik dat inderdaad even met de hand op beide nodes doe

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Security update!
AdGuard Home v0.107.73
https://github.com/Adguar...me/releases/tag/v0.107.73

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 14:52
Steeds meer publieke DNS providers gaan ook adblocking ondersteunen.
Neem bijvoorbeeld DNS4EU.
Hun reguliere DNS is 86.54.11.1
Maar de variant met adblocking is 86.54.11.13
Volgens mij had Quad9 dit ook.
Wat zijn jullie ervaringen hiermee?
Als je zoiets hebt, heb je lokaal toch geen AdGuard meer nodig?

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
GarBaGe schreef op zondag 15 maart 2026 @ 08:47:
Steeds meer publieke DNS providers gaan ook adblocking ondersteunen.
Neem bijvoorbeeld DNS4EU.
Hun reguliere DNS is 86.54.11.1
Maar de variant met adblocking is 86.54.11.13
Volgens mij had Quad9 dit ook.
Wat zijn jullie ervaringen hiermee?
Als je zoiets hebt, heb je lokaal toch geen AdGuard meer nodig?
Als je alle controle uit handen wilt geven kan dat. Maar ik wil graag zelf kunnen kiezen wat er geblokkeerd wordt en belangrijker, wat voor een selecte groep devices wel is toegestaan

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 16:31
Het Canadese 'ControlD' bied zelfs een resolver aan die intern de OISD (.nl) blocklist gebruikt. In principe heb je dan geen AGH nodig, ik heb namelijk diezelfde lijst (erg fijn, nooit false positives gehad in alle jaren dat ik hem gebruik d:)b ) in m'n AGH draaien. Maar je geeft idd wel de controle uit handen...

https://controld.com/free-dns (stukje omlaag bij 'Community blocklists').

[ Voor 11% gewijzigd door ThinkPad op 15-03-2026 09:09 ]


  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 14:52
lolgast schreef op zondag 15 maart 2026 @ 09:00:
[...]

Als je alle controle uit handen wilt geven kan dat. Maar ik wil graag zelf kunnen kiezen wat er geblokkeerd wordt en belangrijker, wat voor een selecte groep devices wel is toegestaan
Okee, maar een beetje blocklist, zoals deze van AdGuard: https://adguardteam.githu...Filter/Filters/filter.txt

Bevat duizenden, zo niet tienduizenden enties.
Dat heb je dan persoonlijk toch ook niet echt grip op? Simpelweg vanwege de grootte?
Wat voor strategie gebruik je dan om dit "behapbaar" te houden?

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • kdrkdr
  • Registratie: Augustus 2009
  • Laatst online: 20-06 17:09
GarBaGe schreef op zondag 15 maart 2026 @ 09:33:
[...]

Okee, maar een beetje blocklist, zoals deze van AdGuard: https://adguardteam.githu...Filter/Filters/filter.txt

Bevat duizenden, zo niet tienduizenden enties.
Dat heb je dan persoonlijk toch ook niet echt grip op? Simpelweg vanwege de grootte?
Wat voor strategie gebruik je dan om dit "behapbaar" te houden?
Thuis gebruik ik AGH. Inderdaad enorme aantallen geblokte adressen. Het enige wat ik doe is dat als ik merk dat een site niet werkt dat ik dan kijk wat er geblokkeerd wordt. Een enkele site whitelisten en ik kan weer door. Is overigens alleen de eerste maanden gebeurt. Inmiddels draait het als een zonnetje zonder bemoeienis. In ons chaletje gebruik ik wel een DNS die zelf blokkeert (DNS4U). Gaat goed maar houdt wel wat minder tegen.

  • Samplex
  • Registratie: Februari 2000
  • Laatst online: 14:32
Door lokale caching (DNS Settings > DNS cache configuration) te gebruiken van Adguard zijn de responses lekker snel met browsen met AGH.

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 14:52
Wegens betrouwbaarheid en stabiliteit draait ik het liefst zo'n AdGuard service op mijn router (MikroTik).
Deze ondersteunt een eenvoudige DNS ad blacklist (adlist).
Dus als ik jullie zo begrijp, kan ik wellicht het beste enkele maanden AdGuard draaien ernaast.
Deze kan ik makkelijker bijstellen en bijwerken.
En als ik dan blij bent met de lijst, kan deze direct op mijn router draaien (zonder AdGuard)...
Of hoe zouden jullie dit aanraden?

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
Dat ligt eraan wat je allemaal wilt. Als dat voor jou een optie is kun je inderdaad 1 blocklist toevoegen op je MT en daarmee klaar zijn

Ik gebruik echterr o.a. DNS rewrites per VLAN, DoH via Caddy met load balancing ervoor, verschillende upstream servers voor een paar clients en 18+ filtering op alle devices van de kids. Dat doet AGH gewoon goed en overzichtelijk, dat ga ik in mijn MT nooit voor elkaar krijgen met het gemak en overzicht zoals AGH dat aanbiedt

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 16:31
* ThinkPad aait z'n OPNsense router waar AGH op draait :Y

Router = router bij mij, die moet in z'n eentje de internetvoorziening kunnen regelen. Ik wil daarin niet afhankelijk zijn van een DNS resolver op een container in een VM op m'n thuisserver. In het verleden wel router gevirtualiseerd, maar bij reboot van thuisserver gelijk geen internet. Slecht voor de WAF ;) ^)

[ Voor 71% gewijzigd door ThinkPad op 17-03-2026 13:46 ]


  • manusjevanalles
  • Registratie: Januari 2009
  • Nu online
ThinkPad schreef op dinsdag 17 maart 2026 @ 13:45:
* ThinkPad aait z'n OPNsense router waar AGH op draait :Y

Router = router bij mij, die moet in z'n eentje de internetvoorziening kunnen regelen. Ik wil daarin niet afhankelijk zijn van een DNS resolver op een container in een VM op m'n thuisserver. In het verleden wel router gevirtualiseerd, maar bij reboot van thuisserver gelijk geen internet. Slecht voor de WAF ;) ^)
Op welk device draai je OPNSense?

☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 16:31
manusjevanalles schreef op dinsdag 17 maart 2026 @ 14:38:
[...]


Op welk device draai je OPNSense?
Een industriëel PCtje, passief gekoeld van 'Nexcom'.
ThinkPad in "Zelfbouw project: Firewall / Router / AP"

Is al een oud bakkie, maar kan tot 1Gbit aan dus voor mij nog snel genoeg.

  • Helox-in-a-box
  • Registratie: Augustus 2000
  • Laatst online: 16:35
ThinkPad schreef op dinsdag 17 maart 2026 @ 13:45:
* ThinkPad aait z'n OPNsense router waar AGH op draait :Y

Router = router bij mij, die moet in z'n eentje de internetvoorziening kunnen regelen. Ik wil daarin niet afhankelijk zijn van een DNS resolver op een container in een VM op m'n thuisserver. In het verleden wel router gevirtualiseerd, maar bij reboot van thuisserver gelijk geen internet. Slecht voor de WAF ;) ^)
Herkenbaar, bij een reboot van de NAS ligt het huis er hier ook 5m uit ;) paar jaar geleden had de NAS een cpu probleem en wilde niet booten, 2 dagen in het donker moeten leven met kaarsjes in het toilet

  • Capt
  • Registratie: Maart 2026
  • Laatst online: 31-05 11:46
Aangezien ik niet zo een IT’er ben…

Welke zijn de nadelen van de gratis versie van www.adguard-dns.com te gebruiken en die dns dan in de fritzbox van de provider te melden?

  • Helox-in-a-box
  • Registratie: Augustus 2000
  • Laatst online: 16:35
Capt schreef op zondag 22 maart 2026 @ 09:57:
Aangezien ik niet zo een IT’er ben…

Welke zijn de nadelen van de gratis versie van www.adguard-dns.com te gebruiken en die dns dan in de fritzbox van de provider te melden?
Dat je het altijd kan gebruiken zonder zelf een AdGuard te draaien (raspberry pi/nas/whatever)

  • jvdburgt1980
  • Registratie: Mei 2008
  • Laatst online: 23-05 17:13
Helox-in-a-box schreef op woensdag 18 maart 2026 @ 11:03:
[...]

Herkenbaar, bij een reboot van de NAS ligt het huis er hier ook 5m uit ;) paar jaar geleden had de NAS een cpu probleem en wilde niet booten, 2 dagen in het donker moeten leven met kaarsjes in het toilet
Misschien dat ik iets niet goed begrijp, maar ik heb in mijn PfSense router mijn AdGuard (draait op docker op aparte server) als primaire DNS ingesteld, en de router zelf als secundaire DNS. Dan heb je het probleem van wegvallend internet bij reboot van je server toch getackeld?

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Nieuwe release: v0.107.74
Zie changelog hier

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 15:13
jvdburgt1980 schreef op donderdag 16 april 2026 @ 07:39:
[...]


Misschien dat ik iets niet goed begrijp, maar ik heb in mijn PfSense router mijn AdGuard (draait op docker op aparte server) als primaire DNS ingesteld, en de router zelf als secundaire DNS. Dan heb je het probleem van wegvallend internet bij reboot van je server toch getackeld?
Je hebt dan grote kans dat je clients via AGH en/of via pfSense gaan resolven, soort round robin/welke DNS reageert er het snelst situatie.
Lijkt me voor adblocking niet optimaal.

mijn verzameling A.I. afbeeldingen


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 16:31
@jvdburgt1980 Waarom zou je AGH in een aparte Docker draaien (is weer iets wat kan omvallen == geen internet!) als het ook in pfSense zelf kan draaien?

Heb AGH al jaren draaien binnen OPNsense en draait als een trein.

P.S. Niet liever OPNsense? Is een NL bedrijf en vriendelijker voor de opensource community :)

  • jvdburgt1980
  • Registratie: Mei 2008
  • Laatst online: 23-05 17:13
@EverLast2002 & @ThinkPad

Dank voor de inzichten, weer wat geleerd, dacht dat secundaire DNS alleen als fallback was. Ik moet mijn PfSense setup broodnodig omzetten naar OPNsense maar simpelweg nog geen tijd voor gehad. Ik had tot voor kort mijn ad-blocking ingesteld via pfBlockerNG maar vgl met AdGuard was dat me iets te onpraktisch. Idd ook geen fan van toevoegen van extra point-of-failure, dus mijn goede voornemen is OPNsense instellen en AGH daar op draaien.

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Nieuwe release
Release AdGuard Home v0.107.75 · AdguardTeam/AdGuardHome · GitHub
Security
  • Go version has been updated to prevent the possibility of exploiting the Go vulnerabilities fixed in 1.26.3.
  • IDs of requests received over DoH and DoQ and forwarded to plain-DNS upstreams are now set to non-zero values to improve security.
    This is GHSA-xgx4-4h9w-53pv. We thank @N0zoM1z0 for reporting this security issue.
Changed
  • Frontend API requests no longer depend on axios.
  • Dashboard charts use Recharts instead of Nivo.
  • enable_dnssec in dns configuration now defines whether the proxy should set the DO flag in the upstream requests, the default is true (#7046).
Fixed
  • Statistics database deadlock (#8359).
  • Translated labels on the DNS settings pages not updating after changing the UI language.
  • Dashboard charts now correctly display lower query counts (#6823).
  • Redundant validation warnings about DHCP when it's disabled (#8348).
  • Safe Browsing and Parental Control labels on the General Settings page not updating after changing the UI language.

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Hmmm, 'AdGuardHome is up-to-date' melding, da's nu de 2e update die ik precies niet vlotjes kan updaten. Tenzij ik nog te vroeg ben ivm sync GitHub.
Toevallig nog iemand dit?

EDIT:
Klein uur verder en update is wel beschikbaar in de UI

[ Voor 15% gewijzigd door TheCeet op 19-05-2026 14:56 ]


  • SpiriTNL
  • Registratie: Maart 2004
  • Laatst online: 12:09
TheCeet schreef op dinsdag 19 mei 2026 @ 13:43:
Nieuwe release
Release AdGuard Home v0.107.75 · AdguardTeam/AdGuardHome · GitHub
Security
  • Go version has been updated to prevent the possibility of exploiting the Go vulnerabilities fixed in 1.26.3.
  • IDs of requests received over DoH and DoQ and forwarded to plain-DNS upstreams are now set to non-zero values to improve security.
    This is GHSA-xgx4-4h9w-53pv. We thank @N0zoM1z0 for reporting this security issue.
Changed
  • Frontend API requests no longer depend on axios.
  • Dashboard charts use Recharts instead of Nivo.
  • enable_dnssec in dns configuration now defines whether the proxy should set the DO flag in the upstream requests, the default is true (#7046).
Fixed
  • Statistics database deadlock (#8359).
  • Translated labels on the DNS settings pages not updating after changing the UI language.
  • Dashboard charts now correctly display lower query counts (#6823).
  • Redundant validation warnings about DHCP when it's disabled (#8348).
  • Safe Browsing and Parental Control labels on the General Settings page not updating after changing the UI language.
Hij is 27 min geleden op github gezet. Zal nog even duren voor de sync er is.

Ik kan hem ook nog niet updaten

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Hebben jullie standaard DNSSEC aan? Tegenwoordig doe ik dat wel, het is dat is dat ik het nu zie in changelogs.

  • Keiran
  • Registratie: Februari 2009
  • Laatst online: 08:28
Toevallig afgelopen week, bij de migratie van AGH (NAS-NUC), aangezet. Sowieso weer even alles nagelopen en draait nu perfect en razendsnel (1ms).

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 15:13
HollowGamer schreef op dinsdag 19 mei 2026 @ 21:22:
Hebben jullie standaard DNSSEC aan? Tegenwoordig doe ik dat wel, het is dat is dat ik het nu zie in changelogs.
voor zover ik weet staat dit standaard al aangevinkt na een installatie. ik hoef het zelf nooit aan te zetten.

mijn verzameling A.I. afbeeldingen


  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
EverLast2002 schreef op woensdag 20 mei 2026 @ 12:13:
[...]

voor zover ik weet staat dit standaard al aangevinkt na een installatie. ik hoef het zelf nooit aan te zetten.
Ik weet niet of dat nieuw is, vroeger was dat niet het geval.

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Nieuwe bugfix release:
Release AdGuard Home v0.107.76 · AdguardTeam/AdGuardHome · GitHub
Changed
  • Duration values in YAML configuration file now support d (days) units and has been updated.
    NOTE: Any rollback to version below the v0.107.76 should convert the values back to hours.
Fixed
  • DNS caching with disabled DNSSEC (#8384).

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Nieuwe update
Release AdGuard Home v0.107.77 · AdguardTeam/AdGuardHome · GitHub
Security
  • Authorization in GLiNET mode is no longer vulnerable to path traversal attacks.
    NOTE: This is CVE-2026-41448. We thank @djnnvx for reporting this security issue.
Added
  • New reason query parameter in GET /control/querylog. See openapi/openapi.yaml for the full description.
Deprecated
  • Query parameter response_status in GET /control/querylog is now deprecated. Use new reason query parameter instead.

  • RobbyTown
  • Registratie: April 2007
  • Niet online

RobbyTown

Godlike

EverLast2002 schreef op woensdag 20 mei 2026 @ 12:13:
[...]

voor zover ik weet staat dit standaard al aangevinkt na een installatie. ik hoef het zelf nooit aan te zetten.
Hier net een verse installatie gedaan. DietPi + Adguardhome

Afbeeldingslocatie: https://tweakers.net/i/dF5xbxbOQLeFIKKAEEsaP9ZRmIU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/Uj96UzEVge0CyBcCK7DHLUC3.png?f=user_large

DNSSEC staat standaard uit. Zou het dan anders zijn als je het via docker of wat installeert?

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe - Globalping Probe


  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 15:13
RobbyTown schreef op donderdag 11 juni 2026 @ 16:16:
[...]

Hier net een verse installatie gedaan. DietPi + Adguardhome

[Afbeelding]

DNSSEC staat standaard uit. Zou het dan anders zijn als je het via docker of wat installeert?
Nu ik eraan denk, ik heb een paar keer AGH geinstalleerd m.b.v. het Proxmox Helper Script. Wellicht dat hier de optie al wel aan stond gevinkt.

mijn verzameling A.I. afbeeldingen


  • RobbyTown
  • Registratie: April 2007
  • Niet online

RobbyTown

Godlike

EverLast2002 schreef op donderdag 11 juni 2026 @ 16:24:
[...]


Nu ik eraan denk, ik heb een paar keer AGH geinstalleerd m.b.v. het Proxmox Helper Script. Wellicht dat hier de optie al wel aan stond gevinkt.
Snel even getest. Check! Dat klopt.

Afbeeldingslocatie: https://tweakers.net/i/uXS0JaVUXvwrBdMq6sPlIaqJlns=/800x/filters:strip_exif()/f/image/t4qSvNSAW3YsmOl56dAfLEuu.png?f=fotoalbum_large

[ Voor 6% gewijzigd door RobbyTown op 11-06-2026 16:30 ]

Blog - Glasnet status (privé log) - Nette LAN - RIPE Atlas Probe - Globalping Probe


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
Is er hier toevallig iemand die iets heeft (gemaakt) voor het categoriseren van de DNS lookups? Ik ben inmiddels zelf iets aan het schrijven op basis van de HaGeZi lijsten en de querylog via de API van AGH maar iets standaards zou mooi zijn

Kwam DNSMon tegen wat er wel heel mooi uitziet maar helaas precies niet categoriseert ;(

Dit is mijn test setup momenteel, met een lokale sqlite3 die ik momenteel handmatig kopieer naar mijn Metabase omgeving. Als dit goed werkt zet ik het wel om naar een echte database
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
import requests
import json
import sqlite3
import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
DB_FILE = BASE_DIR / "dns_categories.db"
STATE_FILE = BASE_DIR / "state.json"
CATEGORY_DIR = BASE_DIR / "categories"


####
#### Create DB if needed ####
####
conn = sqlite3.connect(DB_FILE)
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS categorized_queries (
    timestamp TEXT NOT NULL,
    client TEXT NOT NULL,
    domain TEXT NOT NULL,
    category TEXT NOT NULL,
    status TEXT NOT NULL,
    reason TEXT NOT NULL,
    UNIQUE(timestamp, client, domain, category, status, reason)
)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_client
ON categorized_queries(client)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_category
ON categorized_queries(category)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_domain
ON categorized_queries(domain)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_status
ON categorized_queries(status)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_reason
ON categorized_queries(reason)
""")

conn.commit()
#### End ####

####
#### - Hash sets - ####
####
CATEGORY_FILES = {
    "tif": "tif.txt",
    "nsfw": "nsfw.txt",
    "social": "social.txt"
}

try:
    with open(STATE_FILE) as f:
        state = json.load(f)
except FileNotFoundError:
    state = {"last_processed_time": ""}

category_sets = {}

####
#### Read HaGeZi files ####
####
for category, filename in CATEGORY_FILES.items():

    domains = set()

    with open(CATEGORY_DIR / filename) as f:
        for line in f:
            line = line.strip()

            if not line or line.startswith("#"):
                continue

            domains.add(line.lower())

    category_sets[category] = domains
#### END ####

####
#### - Find matches - ####
####
def domain_match(domain, lookup_set):
    domain = domain.lower()

    while True:
        if domain in lookup_set:
            return True

        if "." not in domain:
            return False

        domain = domain.split(".", 1)[1]
#### END ####

def normalize_domain(domain: str, depth: int = 3) -> str:
    domain = domain.lower().rstrip(".")
    parts = domain.split(".")

    if len(parts) <= depth:
        return domain

    return ".".join(parts[-depth:])

####
#### - Adguard Home API - ####
####
response = requests.get(
    "http://192.168.4.24/control/querylog?limit=5000",
    params={"limit": 5000},
    auth=("admin", "!"),
    timeout=30
)

queries = response.json()
#### END ####

domain_cache = {}
newest_seen = state['last_processed_time']

for line in queries["data"]:
    timestamp = line['time']

    if timestamp <= state['last_processed_time']:
        break

    raw_domain = line['question']['name']
    domain = normalize_domain(raw_domain, depth=3)

    client = line['client']
    status = line['status']
    reason = line['reason']

    if domain not in domain_cache:
        categories = []

        for category, lookup_set in category_sets.items():
            if domain_match(domain, lookup_set):
                categories.append(category)

        domain_cache[domain] = categories

    if domain_cache[domain]:

        for category in domain_cache[domain]:

            cursor.execute("""
                INSERT OR IGNORE INTO categorized_queries
                (timestamp, client, domain, category, status, reason)
                VALUES (?, ?, ?, ?, ?, ?)
            """, (
                timestamp,
                client,
                domain,
                category,
                status,
                reason
            ))

    if timestamp > newest_seen:
        newest_seen = timestamp

conn.commit()
conn.close()

state["last_processed_time"] = newest_seen

with open(STATE_FILE, "w") as file:
    json.dump(state, file)
Downloaden van de lijsten
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import os
import requests

os.chdir("/home/stefan/Documents/python")
os.makedirs("categories", exist_ok=True)

urls = {
    "tif": "https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/tif-onlydomains.txt",
    "nsfw": "https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/nsfw-onlydomains.txt",
    "social": "https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/social-onlydomains.txt"
}

for category, url in urls.items():
    print(f"Downloading {category}...")

    response = requests.get(url, timeout=30)
    response.raise_for_status()

    tmp_file = f"categories/{category}.txt.tmp"

    with open(tmp_file, "w") as file:
        file.write(response.text)

    os.replace(
        tmp_file,
        f"categories/{category}.txt"
    )
    lines = response.text.count("\n")
    
    print(
        f"Saved categories/{category}.txt "
        f"({lines:,} entries)"
    )

[ Voor 87% gewijzigd door lolgast op 13-06-2026 08:59 ]


  • Puller
  • Registratie: Februari 2019
  • Laatst online: 13-06 14:17
Interessant.

Hoe ziet de output er uit?

Ik volg.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
@Puller Beetje wat je er zelf van wilt maken op basis van wat je in de database gooit. Gisteren als test wat met Metabase lopen klooien, maar omdat het gewoon met SQL queries is op te halen kan het ook in de commandline
Afbeeldingslocatie: https://images.lolgast.nl/uploads/original/ca/4b/f38e2e4c89931ef371c492b0e6cd.png
Afbeeldingslocatie: https://images.lolgast.nl/uploads/original/2b/15/3abff533e5eb587ce6f8fd1cf3c3.png

[ Voor 6% gewijzigd door lolgast op 13-06-2026 18:59 ]


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
Waar ik een beetje tegenaan loop is dat er, voor zover ik kan vinden, niet echt publiek beschikbare lijsten zijn voor dit doeleinde.. Gaat nu niet zozeer om blocklists maar om bijvoorbeeld een volledige lijst met CDN URL's, of een complete lijst 'technology'. Beetje offtopic voor hier ook, eens kijken hoe ik dat ga oplossen, vind het wel een leuk vraagstuk namelijk

  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
Stiekem begint het wat vorm te krijgen. Ik heb de lijsten van Adguard Home gevonden op Github die het gebruikt om services te kunnen blokkeren. Op basis daarvan en wat zelfgevulde categorien ziet het er nu zo uit na een dagje
Afbeeldingslocatie: https://images.lolgast.nl/uploads/original/65/26/c6f1248fd82b8c90ddbec3b06c01.png
Database queries met Metabase

Gaat echt nog wel wat werk zitten in het verbeteren en aanvullen van de domeinen die ik wil monitoren. Voor mij ziet het er nu zo uit, mocht iemand het na willen bouwen.

DISCLAIMER! Het is een gigantische WIP, maar functioneel
Python: main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
import requests
import json
import sqlite3
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
DB_FILE = BASE_DIR / "dns_categories.db"
STATE_FILE = BASE_DIR / "state.json"
CATEGORY_DIR = BASE_DIR / "categories"
UNKNOWN_FILE = BASE_DIR / "unknown_domains.json"

####
#### Create DB if needed ####
####
conn = sqlite3.connect(DB_FILE)
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS categorized_queries (
    timestamp TEXT NOT NULL,
    client TEXT NOT NULL,
    domain TEXT NOT NULL,
    category TEXT NOT NULL,
    status TEXT NOT NULL,
    reason TEXT NOT NULL,
    UNIQUE(timestamp, client, domain, category, status, reason)
)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_client
ON categorized_queries(client)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_category
ON categorized_queries(category)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_domain
ON categorized_queries(domain)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_status
ON categorized_queries(status)
""")

cursor.execute("""
CREATE INDEX IF NOT EXISTS idx_reason
ON categorized_queries(reason)
""")

conn.commit()
#### End ####

####
#### - Hash sets - ####
####
CATEGORY_FILES = {
    file.stem: file.name
    for file in CATEGORY_DIR.glob("*.txt")
}

try:
    with open(STATE_FILE) as f:
        state = json.load(f)
except FileNotFoundError:
    state = {"last_processed_time": ""}

try:
    with open(UNKNOWN_FILE) as f:
        unknown_domains = json.load(f)
except FileNotFoundError:
    unknown_domains = {}

category_sets = {}

####
#### Read HaGeZi files ####
####
for category, filename in CATEGORY_FILES.items():

    domains = set()

    with open(CATEGORY_DIR / filename) as f:
        for line in f:
            line = line.strip()

            if not line or line.startswith("#"):
                continue

            domains.add(line.lower())

    category_sets[category] = domains
#### END ####

####
#### - Find matches - ####
####
def domain_match(domain, lookup_set):
    domain = domain.lower()

    while True:
        if domain in lookup_set:
            return True

        if "." not in domain:
            return False

        domain = domain.split(".", 1)[1]
#### END ####

def normalize_domain(domain: str, depth: int = 3) -> str:
    domain = domain.lower().rstrip(".")
    parts = domain.split(".")

    if len(parts) <= depth:
        return domain

    return ".".join(parts[-depth:])

####
#### - Adguard Home API - ####
####
response = requests.get(
    "http://192.168.4.24/control/querylog?limit=5000",
    params={"limit": 5000},
    auth=("admin", "PASSWORD"),
    timeout=30
)

queries = response.json()
#### END ####

domain_cache = {}
newest_seen = state['last_processed_time']

for line in queries["data"]:
    timestamp = line['time']

    if timestamp <= state['last_processed_time']:
        break

    raw_domain = line['question']['name'].lower().rstrip('.')
    storage_domain = normalize_domain(raw_domain, depth=3)

    client = line['client']
    status = line['status']
    reason = line['reason']

    if raw_domain not in domain_cache:
        categories = []

        for category, lookup_set in category_sets.items():
            if domain_match(raw_domain, lookup_set):
                categories.append(category)

        domain_cache[raw_domain] = categories

    if domain_cache[raw_domain]:

        for category in domain_cache[raw_domain]:

            if category == "ignored":
                continue

            cursor.execute("""
                INSERT OR IGNORE INTO categorized_queries
                (timestamp, client, domain, category, status, reason)
                VALUES (?, ?, ?, ?, ?, ?)
            """, (
                timestamp,
                client,
                storage_domain,
                category,
                status,
                reason
            ))

    else:

        if storage_domain not in unknown_domains:
            unknown_domains[storage_domain] = {
                "hits": 0,
                "clients": {},
                "first_seen": timestamp,
                "last_seen": timestamp,
            }

        unknown_domains[storage_domain]["hits"] += 1
        unknown_domains[storage_domain]["last_seen"] = timestamp
        unknown_domains[storage_domain]["clients"][client] = (
            unknown_domains[storage_domain]["clients"].get(client, 0) + 1
        )

    if timestamp > newest_seen:
        newest_seen = timestamp

conn.commit()
conn.close()

state["last_processed_time"] = newest_seen

sorted_unknown = dict(
    sorted(
        unknown_domains.items(),
        key=lambda item: item[1]["hits"],
        reverse=True
    )
)

with open(UNKNOWN_FILE, "w") as f:
    json.dump(sorted_unknown, f, indent=4)

with open(STATE_FILE, "w") as file:
    json.dump(state, file)
Python: update_categories.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
from pathlib import Path

import requests
import yaml

BASE_DIR = Path(__file__).resolve().parent
CATEGORY_DIR = BASE_DIR / "categories"

CATEGORY_DIR.mkdir(exist_ok=True)

SOURCES = {
    "advertising": [
        "https://filters.adtidy.org/extension/ublock/filters/2.txt",
    ],
    "malware": [
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/filters/security/filter_12_DandelionSproutsAntiMalwareList/filter.txt",
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/filters/security/filter_11_MaliciousURLBlocklist/filter.txt",
    ],
    "nsfw": [
        "https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/nsfw-onlydomains.txt",
        "https://media.githubusercontent.com/media/zachlagden/Pi-hole-Optimized-Blocklists/main/lists/nsfw.txt",
    ],
    "shopping": [
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/services/aliexpress.yml",
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/services/amazon.yml",
    ],
    "social": [
        "https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/social-onlydomains.txt",
        "https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/social-only/hosts",
    ],
    "streaming": [
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/services/disneyplus.yml",
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/services/youtube.yml",
    ],
    "teams": [
        "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/services/microsoft_teams.yml",
    ],
    "tif": [
      "https://raw.githubusercontent.com/AdguardTeam/HostlistsRegistry/main/filters/security/filter_44_HageziThreatIntelligenceFeeds/filter.txt",
    ],
}

def normalize_entry(entry):
    entry = entry.strip()

    # Adblock DNS rule
    if entry.startswith("||"):
        entry = entry[2:]

    # Remove everything after the hostname
    for sep in ("^", "/", "$"):
        if sep in entry:
            entry = entry.split(sep, 1)[0]

    # Remove leading wildcard if present
    entry = entry.lstrip("*.")

    return entry.lower()

def extract_line(line):
    line = line.strip()

    if not line or line.startswith("#"):
        return None

    parts = line.split()

    # Plain list
    if len(parts) == 1:
        return parts[0].lower()

    # Hosts file
    if len(parts) >= 2:
        return parts[1].lower()

    return None

def extract_entries(url, text):
    # AdGuard Hostlists Registry service definition
    if url.endswith((".yml", ".yaml")):
        try:
            data = yaml.safe_load(text)

            if isinstance(data, dict):
                rules = data.get("rules", [])

                if isinstance(rules, list):
                    entries = set()

                    for rule in rules:
                        if not isinstance(rule, str):
                            continue

                        entry = normalize_entry(rule)

                        if entry:
                            entries.add(entry)

                    return entries

        except yaml.YAMLError as e:
            print(f"  Warning: failed to parse YAML: {e}")

    # Existing formats
    entries = set()

    for line in text.splitlines():
        entry = extract_line(line)

        if entry:
            entries.add(entry)

    return entries


for category, urls in SOURCES.items():

    print(f"Processing {category}...")

    entries = set()

    for url in urls:

        print(f"  Downloading {url}")

        response = requests.get(url, timeout=30)
        response.raise_for_status()

        entries.update(extract_entries(url, response.text))

    tmp_file = CATEGORY_DIR / f"{category}.txt.tmp"
    output_file = CATEGORY_DIR / f"{category}.txt"

    with open(tmp_file, "w") as f:

        for entry in sorted(entries):
            f.write(f"{entry}\n")

    tmp_file.replace(output_file)

    print(
        f"Saved {output_file.name} "
        f"({len(entries):,} unique entries)"
    )
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
root@metabase:/opt/dns_cat# ls -lR
.:
total 14860
drwxr-xr-x 2 root root     4096 Jun 18 20:16 categories
-rw-r--r-- 1 root root 14995456 Jun 18 20:30 dns_categories.db
-rw-r--r-- 1 root root     4866 Jun 18 14:06 main.py
-rw-r--r-- 1 root root       62 Jun 18 20:30 state.json
-rw-r--r-- 1 root root   194520 Jun 18 20:30 unknown_domains.json
-rw-r--r-- 1 root root     4153 Jun 18 20:16 update_categories.py

./categories:
total 45108
-rw-r--r-- 1 root root  4143288 Jun 18 20:16 advertising.txt
-rw-r--r-- 1 root root       86 Jun 17 22:32 developer.txt
-rw-r--r-- 1 root root       99 Jun 17 22:32 google.txt
-rw-r--r-- 1 root root        0 Jun 18 14:03 ignored.txt
-rw-r--r-- 1 root root   755394 Jun 18 20:16 malware.txt
-rw-r--r-- 1 root root       99 Jun 17 22:32 microsoft.txt
-rw-r--r-- 1 root root  6594045 Jun 18 20:16 nsfw.txt
-rw-r--r-- 1 root root     3169 Jun 18 20:16 shopping.txt
-rw-r--r-- 1 root root    98784 Jun 18 20:16 social.txt
-rw-r--r-- 1 root root     2499 Jun 18 20:16 streaming.txt
-rw-r--r-- 1 root root       56 Jun 18 20:16 teams.txt
-rw-r--r-- 1 root root       13 Jun 18 09:44 techology.txt
-rw-r--r-- 1 root root 34559041 Jun 18 20:16 tif.txt
Bash:
1
2
3
4
root@metabase:/opt/dns_cat# crontab -l
0 3 * * * /usr/bin/python3 /opt/dns_cat/update_categories.py

*/30 * * * * /usr/bin/python3 /opt/dns_cat/main.py

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 10:39
Puik werk!
Zou zomaar eens een feature request mogen zijn bij AdGuard Home

  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
TheCeet schreef op vrijdag 19 juni 2026 @ 11:50:
Puik werk!
Zou zomaar eens een feature request mogen zijn bij AdGuard Home
Als het wat beter vorm gegeven is zal ik eens tijd steken in een request daar. Alle benodigde gegevens hebben ze al en de data komt uit AGH zelf. Lijkt me opzich vrij 'eenvoudig' voor ze, maar ze moeten er maar net tijd in willen steken natuurlijk.

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 16:31
Met bijna 1200 issues op GitHub hebben ze nog een flinke backlog :+

Wat ik zelf mis, is de mogelijkheid om wat beter te kunnen filteren/zoeken in de queries die zijn gedaan. Je kan nu bijv. wel een IP-adres invullen om te filteren op alle requests van een bepaalde cliënt, maar ik zou dan bijv. óók nog binnen die dataset willen filteren (eigenlijk een AND in de zoekopdracht).

[ Voor 56% gewijzigd door ThinkPad op 19-06-2026 15:16 ]


  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 14:24
ThinkPad schreef op vrijdag 19 juni 2026 @ 14:45:
Met bijna 1200 issues op GitHub hebben ze nog een flinke backlog :+
Die zijn niet per se relevant voor nieuwe features. Ze hebben maar 72 Pull Requests open staan.

Sometimes you need to plan for coincidence


  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 20-06 17:15
Ik vind dat nogal wat, dns traffic van je huishouden monitoren..

you had me at EHLO


  • lolgast
  • Registratie: November 2006
  • Laatst online: 25-06 22:16
sjongenelen schreef op zaterdag 20 juni 2026 @ 11:52:
Ik vind dat nogal wat, dns traffic van je huishouden monitoren..
Waarschijnlijk gaan we het toch niet eens worden, maar enfin:
Deze data komt uit de software die DNS voor je regelt…. Het is geen nieuwe data. Niet monitoren in AGH is sowieso geen optie want als er dan iets brekends geblokkeerd wordt heb je geen idee wat. Het enige wat dit doet is de specifieke data toekennen aan een categorie en dat opslaan.

In zekere zin is het bijhouden van de categorien een stuk minder privacy ingrijpend dan wat sowieso al in AGH gebeurd, dus ik snap je punt niet helemaal denk ik

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 14:24
Logging staat hier ook uit (vanwege "monitoring") en zet ik aan als er iets stuk is. Maar dat is 1x per jaar ofzo.

Sometimes you need to plan for coincidence

Pagina: 1 ... 32 33 Laatste