• Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
tomdh76 schreef op zaterdag 31 januari 2026 @ 14:03:
[...]


maar in dnscrypt moet je dan ook weer een upstream server zetten. kan je deze stap niet overslaan en de upstream rechtstreeks in adguard zetten. ik heb ook wel met dnscrypt gewerkt maar zie niet 1-2-3 voordelen tov dns over https vanuit adguard
In DNScrypt heb ik geen DNS servers ingesteld. Dat doet hij zelf op basis van de instellingen die je zet.

  • tomdh76
  • Registratie: Maart 2015
  • Laatst online: 17:56
Villager schreef op zaterdag 31 januari 2026 @ 14:51:
[...]

In DNScrypt heb ik geen DNS servers ingesteld. Dat doet hij zelf op basis van de instellingen die je zet.
ok, maar dan zou je die servers net zo goed toch in adguard kunnen zetten.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:22
tomdh76 schreef op zaterdag 31 januari 2026 @ 15:35:
[...]


ok, maar dan zou je die servers net zo goed toch in adguard kunnen zetten.
Jep :+

Enige wat DNSCrypt in mijn ogen doet is het nóg simpeler maken, maar je geeft ook controle uit handen. De DoH/TLS servers van Cloudflare of Adguard instellen in AGH levert hetzelfde op met een schakel minder

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
lolgast schreef op zaterdag 31 januari 2026 @ 16:02:
[...]

Jep :+

Enige wat DNSCrypt in mijn ogen doet is het nóg simpeler maken, maar je geeft ook controle uit handen. De DoH/TLS servers van Cloudflare of Adguard instellen in AGH levert hetzelfde op met een schakel minder
Dat is zeker zo, Maar je maakt het daarmee ook redelijk 'statisch'. DNScrypt kiest zelf de juiste DNS servers en dat kan dus steeds een andere 'set' van DNS servers zijn. Geeft in mijn ogen wat betere privacy. En volgens mij krijg je ook steeds de, op dat moment, snelste servers. De extra stap geeft nauwelijks vertraging. Ik heb in Adguard een gemiddelde responstijd van rond de 10ms.
Ik probeer niks te pushen ofzo. Het is gewoon een optie om het in te richten en dit is hoe ik het heb gedaan ;)

[ Voor 9% gewijzigd door Villager op 01-02-2026 07:22 ]


  • tomdh76
  • Registratie: Maart 2015
  • Laatst online: 17:56
Villager schreef op zondag 1 februari 2026 @ 07:18:
[...]

Dat is zeker zo, Maar je maakt het daarmee ook redelijk 'statisch'. DNScrypt kiest zelf de juiste DNS servers en dat kan dus steeds een andere 'set' van DNS servers zijn. Geeft in mijn ogen wat betere privacy. En volgens mij krijg je ook steeds de, op dat moment, snelste servers. De extra stap geeft nauwelijks vertraging. Ik heb in Adguard een gemiddelde responstijd van rond de 10ms.
Ik probeer niks te pushen ofzo. Het is gewoon een optie om het in te richten en dit is hoe ik het heb gedaan ;)
en gebruik je geen enkele blok list in dnscrypt? Waar ik een beetje tegen aan liep is dat ik van mijn kids wel eens hoorde dat iets geblokt was, dan moest ik gaan kijken in adguard, dnscrypt en ook nog zenarmor waar het geblokt werd.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:22
Villager schreef op zondag 1 februari 2026 @ 07:18:
[...]

Dat is zeker zo, Maar je maakt het daarmee ook redelijk 'statisch'. DNScrypt kiest zelf de juiste DNS servers en dat kan dus steeds een andere 'set' van DNS servers zijn. Geeft in mijn ogen wat betere privacy. En volgens mij krijg je ook steeds de, op dat moment, snelste servers. De extra stap geeft nauwelijks vertraging. Ik heb in Adguard een gemiddelde responstijd van rond de 10ms.
Ik probeer niks te pushen ofzo. Het is gewoon een optie om het in te richten en dit is hoe ik het heb gedaan ;)
Als je in AGH meerdere upstream servers invult heb je diezelfde set aan potentiële DNS servers toch? Het is aan jou om te kiezen of je op basis van loadbalancing gebruik van ze wilt maken of de beste/snelste.

Hoe dan ook, zoveel mensen, zoveel wensen. Ik gebruik mijn eigen Technitium als upstream server waardoor ik überhaupt niet afhankelijk ben van Cloudflare/Cisco/Google. En die is net als AGH behoorlijk inzichtelijk

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
tomdh76 schreef op zondag 1 februari 2026 @ 11:28:
[...]


en gebruik je geen enkele blok list in dnscrypt? Waar ik een beetje tegen aan liep is dat ik van mijn kids wel eens hoorde dat iets geblokt was, dan moest ik gaan kijken in adguard, dnscrypt en ook nog zenarmor waar het geblokt werd.
Nee, ik gebruik de blocklists van AGH. En gebruik dus ook Unbound niet meer. Maakt het een stuk simpeler zo. Zenarmor heb ik ook verwijderd. Heb nog nooit enig verschil gemerkt als het aan stond. Ook de logfiles lieten niets bijzonders zien. Kennelijk voegt het voor mij dus niks toe.

[ Voor 15% gewijzigd door Villager op 01-02-2026 11:46 ]


  • Vorkie
  • Registratie: September 2001
  • Niet online
lolgast schreef op zondag 1 februari 2026 @ 11:39:
[...]

Als je in AGH meerdere upstream servers invult heb je diezelfde set aan potentiële DNS servers toch? Het is aan jou om te kiezen of je op basis van loadbalancing gebruik van ze wilt maken of de beste/snelste.

Hoe dan ook, zoveel mensen, zoveel wensen. Ik gebruik mijn eigen Technitium als upstream server waardoor ik überhaupt niet afhankelijk ben van Cloudflare/Cisco/Google. En die is net als AGH behoorlijk inzichtelijk
In AGH kan je ook gewoon de DNS rootservers plaatsen als upstream natuurlijk. Ben je ook niet afhankelijk van nog een extra docker?

https://www.iana.org/domains/root/servers voor de lijst.

3-fase Victron 3x MP 6.5kVA | 30kWh Voltsmile LFP | MPPT 450/100 + 2x MPPT | VM-3P75CT Grid Meter


  • tomdh76
  • Registratie: Maart 2015
  • Laatst online: 17:56
Villager schreef op zondag 1 februari 2026 @ 07:18:
[...]

Dat is zeker zo, Maar je maakt het daarmee ook redelijk 'statisch'. DNScrypt kiest zelf de juiste DNS servers en dat kan dus steeds een andere 'set' van DNS servers zijn. Geeft in mijn ogen wat betere privacy. En volgens mij krijg je ook steeds de, op dat moment, snelste servers. De extra stap geeft nauwelijks vertraging. Ik heb in Adguard een gemiddelde responstijd van rond de 10ms.
Ik probeer niks te pushen ofzo. Het is gewoon een optie om het in te richten en dit is hoe ik het heb gedaan ;)
ik heb nu een dagje dnscrypt staan (op opnsense) en dan in adguard 127.0.0.1:5350 als enig upstream server maar bij mij is responstijd 75 ms. Terwijl ik de dnscrypt logs als snelste provider 'he' zie staan (rtt: 3ms). Ik heb in dnscrypt ipv4, ipv6, use dnscrypt servers en dns-over https servers aangevinkt. Verder niets gespecificeerd. In adguard staat het op volume balanceren. Is er nog iets wat ik zou moeten aanpassen?

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
tomdh76 schreef op dinsdag 3 februari 2026 @ 20:25:
[...]


ik heb nu een dagje dnscrypt staan (op opnsense) en dan in adguard 127.0.0.1:5350 als enig upstream server maar bij mij is responstijd 75 ms. Terwijl ik de dnscrypt logs als snelste provider 'he' zie staan (rtt: 3ms). Ik heb in dnscrypt ipv4, ipv6, use dnscrypt servers en dns-over https servers aangevinkt. Verder niets gespecificeerd. In adguard staat het op volume balanceren. Is er nog iets wat ik zou moeten aanpassen?
En je cache settings in DNScrypt?
Afbeeldingslocatie: https://tweakers.net/i/RQD3cq7drASzVYkQuIFNJNf6tM4=/x800/filters:strip_icc():strip_exif()/f/image/pl5KEe2kkD7Ms0yS5FIsZuiC.jpg?f=fotoalbum_large

  • tomdh76
  • Registratie: Maart 2015
  • Laatst online: 17:56
Villager schreef op dinsdag 3 februari 2026 @ 20:30:
[...]

En je cache settings in DNScrypt?
[Afbeelding]
die stond op 512, heb hem nu op 1024 gezet. Heb je cache ook nog aan in Adguard?

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 31-08 12:29
Villager schreef op dinsdag 3 februari 2026 @ 20:30:
[...]

En je cache settings in DNScrypt?
[Afbeelding]
vraag: wat is het effect/nut om die op te hogen van 512 naar 1024MB ?
(draai zelf ook dnscrypt in opnsense i.c.m. AGH)

mijn verzameling A.I. afbeeldingen


  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
tomdh76 schreef op dinsdag 3 februari 2026 @ 21:18:
[...]


die stond op 512, heb hem nu op 1024 gezet. Heb je cache ook nog aan in Adguard?
Ja..
Afbeeldingslocatie: https://tweakers.net/i/2KF1QRI1AKYzwaZmFueLV-RGGX8=/x800/filters:strip_icc():strip_exif()/f/image/1LVNzwOnD5spocjtCu3xxJ1v.jpg?f=fotoalbum_large

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
Ik heb m hoger gezet omdat ik toch voldoende geheugen heb. Draai bare metal OPNsense met 16GB. Of het een positief effect heeft, weet ik niet.

  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 12:46
Vorkie schreef op zondag 1 februari 2026 @ 11:44:
[...]

In AGH kan je ook gewoon de DNS rootservers plaatsen als upstream natuurlijk. Ben je ook niet afhankelijk van nog een extra docker?

https://www.iana.org/domains/root/servers voor de lijst.
bij mijn weten werkt dit niet.
AGH is forwarder en als je de IP's van rootserver gebruikt moet dit verwerkt worden door resolver (zoals Unbound, of andere)

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
tomdh76 schreef op dinsdag 3 februari 2026 @ 20:25:
[...]


ik heb nu een dagje dnscrypt staan (op opnsense) en dan in adguard 127.0.0.1:5350 als enig upstream server maar bij mij is responstijd 75 ms. Terwijl ik de dnscrypt logs als snelste provider 'he' zie staan (rtt: 3ms). Ik heb in dnscrypt ipv4, ipv6, use dnscrypt servers en dns-over https servers aangevinkt. Verder niets gespecificeerd. In adguard staat het op volume balanceren. Is er nog iets wat ik zou moeten aanpassen?
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

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Ik merkte trouwens wel echt het verschil. Dacht dat het niet veel deed, totdat ik op 5G SofaScore ging openen, en meteen een ad kreeg.

Zelf gebruik ik wel de filter die kijkt op Android SDK niveau, en staat de DNS prive-modes uit. Zou moeten kijken of ik geen VPN of de Synlogy kan installeren, Tailscale lijkt me wel leuk als ik ook extern zit.

  • Villager
  • Registratie: September 2013
  • Laatst online: 02-09 11:00
HollowGamer schreef op vrijdag 6 februari 2026 @ 22:17:
Ik merkte trouwens wel echt het verschil. Dacht dat het niet veel deed, totdat ik op 5G SofaScore ging openen, en meteen een ad kreeg.

Zelf gebruik ik wel de filter die kijkt op Android SDK niveau, en staat de DNS prive-modes uit. Zou moeten kijken of ik geen VPN of de Synlogy kan installeren, Tailscale lijkt me wel leuk als ik ook extern zit.
Ik heb gewoon een Ubuntu container met Wireguard + PiVPN en laat m'n mobiel altijd automatisch een verbinding naar huis opzetten met de 'WG tunnel' App, zodra ik de deur uitstap. Kan dus altijd veilig en advertentievrij internet op en hoef daarvoor verder niks op m'n mobiel in te stellen . Maar Tailscale zal ook prima werken, al ben je dan wel weer afhankelijk van een clouddienst.

[ Voor 3% gewijzigd door Villager op 07-02-2026 14:06 ]


  • Roog1317
  • Registratie: December 2003
  • Laatst online: 17:13
Ik draai al een tijdje AdGuard Home naar tevredenheid op mijn Synology NAS. Dit weekend heb ik een 2de installatie op een Raspberry Pi toegevoegd aan mijn netwerk. Mijn voornaamste argument voor een 2de DNS server is redundantie. Verder heb ik een Fritzbox 7690 router. Hier kun je DNS op niveau van DHCP en WAN instellen.

DHCP DNS:
- 1 DNS ip adres mogelijk
- alle devices individueel traceerbaar in AdGuard

WAN DNS:
- 2 DNS ip adressen mogelijk
- fallback naar openbare DNS
- Adguard ziet alleen Fritzbox, dus geen instellingen of logging per device mogelijk

Ik heb nu ingesteld dat de DHCP DNS het ip adres van de Fritzbox router is. De WAN DNS heb ik ingesteld op AdGuard (zowel de NAS als de Raspberry Pi). In deze opstelling heb ik maximale betrouwbaarheid, maar dus geen logging op device niveau.

Kan iemand mij vertellen wat best practice is, hoe hebben anderen dit geregeld?

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Roog1317 schreef op zondag 8 februari 2026 @ 11:42:
Ik draai al een tijdje AdGuard Home naar tevredenheid op mijn Synology NAS. Dit weekend heb ik een 2de installatie op een Raspberry Pi toegevoegd aan mijn netwerk. Mijn voornaamste argument voor een 2de DNS server is redundantie. Verder heb ik een Fritzbox 7690 router. Hier kun je DNS op niveau van DHCP en WAN instellen.

DHCP DNS:
- 1 DNS ip adres mogelijk
- alle devices individueel traceerbaar in AdGuard

WAN DNS:
- 2 DNS ip adressen mogelijk
- fallback naar openbare DNS
- Adguard ziet alleen Fritzbox, dus geen instellingen of logging per device mogelijk

Ik heb nu ingesteld dat de DHCP DNS het ip adres van de Fritzbox router is. De WAN DNS heb ik ingesteld op AdGuard (zowel de NAS als de Raspberry Pi). In deze opstelling heb ik maximale betrouwbaarheid, maar dus geen logging op device niveau.

Kan iemand mij vertellen wat best practice is, hoe hebben anderen dit geregeld?
Ik heb het per device via mijn modem als DHCP optie.

Er is niet echt een best practice denk ik, het is afhankelijk van je netwerk en wensen.

  • qwasd
  • Registratie: September 2012
  • Laatst online: 01:42
Roog1317 schreef op zondag 8 februari 2026 @ 11:42:
Ik draai al een tijdje AdGuard Home naar tevredenheid op mijn Synology NAS. Dit weekend heb ik een 2de installatie op een Raspberry Pi toegevoegd aan mijn netwerk. Mijn voornaamste argument voor een 2de DNS server is redundantie. Verder heb ik een Fritzbox 7690 router. Hier kun je DNS op niveau van DHCP en WAN instellen.

DHCP DNS:
- 1 DNS ip adres mogelijk
- alle devices individueel traceerbaar in AdGuard

WAN DNS:
- 2 DNS ip adressen mogelijk
- fallback naar openbare DNS
- Adguard ziet alleen Fritzbox, dus geen instellingen of logging per device mogelijk

Ik heb nu ingesteld dat de DHCP DNS het ip adres van de Fritzbox router is. De WAN DNS heb ik ingesteld op AdGuard (zowel de NAS als de Raspberry Pi). In deze opstelling heb ik maximale betrouwbaarheid, maar dus geen logging op device niveau.

Kan iemand mij vertellen wat best practice is, hoe hebben anderen dit geregeld?
WAN (en dus automatisch alle vlans) Doh via Quad9 en Cloudflare (dus encrypted dns op mijn Unifi Cloud Gateway Fiber).

Voor de vlans waar ik Adguard Home wil gebruiken dns server gedefinieerd. Ik heb niet op alle vlans Adguard Home nodig en als er toch iets aan de hand is met de Adguard Home servers houden de Gateway en bepaalde vlans / onderliggende services wel een internetverbinding.

[ Voor 8% gewijzigd door qwasd op 08-02-2026 16:40 ]


  • Glassertje
  • Registratie: September 2020
  • Nu online
Roog1317 schreef op zondag 8 februari 2026 @ 11:42:
Ik draai al een tijdje AdGuard Home naar tevredenheid op mijn Synology NAS. Dit weekend heb ik een 2de installatie op een Raspberry Pi toegevoegd aan mijn netwerk. Mijn voornaamste argument voor een 2de DNS server is redundantie. Verder heb ik een Fritzbox 7690 router. Hier kun je DNS op niveau van DHCP en WAN instellen.

DHCP DNS:
- 1 DNS ip adres mogelijk
- alle devices individueel traceerbaar in AdGuard

WAN DNS:
- 2 DNS ip adressen mogelijk
- fallback naar openbare DNS
- Adguard ziet alleen Fritzbox, dus geen instellingen of logging per device mogelijk

Ik heb nu ingesteld dat de DHCP DNS het ip adres van de Fritzbox router is. De WAN DNS heb ik ingesteld op AdGuard (zowel de NAS als de Raspberry Pi). In deze opstelling heb ik maximale betrouwbaarheid, maar dus geen logging op device niveau.

Kan iemand mij vertellen wat best practice is, hoe hebben anderen dit geregeld?
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.

  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 08:52
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
  • Nu online
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: 16:22
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: 17:56
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: 08:52
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: 16:22
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: 02-09 11:00
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: 12:46
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: 31-08 12:29
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


  • 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: 16:22
@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: 16:22
@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: 12:46
Security update!
AdGuard Home v0.107.73
https://github.com/Adguar...me/releases/tag/v0.107.73

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 11:01
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: 16:22
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: 18:21
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: 11:01
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: 31-08 12:44
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: 11:15
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: 11:01
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: 16:22
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: 18:21
* 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
  • Laatst online: 18:20
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?

☀️ 7920 Wp | 🔋 Zendure Solarflow 800+ |🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant


  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 18:21
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: 08:36
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: 08:36
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: 18-07 12:36
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: 12:46
Nieuwe release: v0.107.74
Zie changelog hier

  • EverLast2002
  • Registratie: Maart 2013
  • Laatst online: 31-08 12:29
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: 18:21
@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: 18-07 12:36
@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: 12:46
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: 12:46
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: 02-09 10:28
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: 30-08 21:49
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: 31-08 12:29
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: 12:46
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: 12:46
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: 31-08 12:29
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: 16:22
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: 16:22
@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: 16:22
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: 16:22
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: 12:46
Puik werk!
Zou zomaar eens een feature request mogen zijn bij AdGuard Home

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:22
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: 18:21
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: 13:30
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: 30-08 14:07
Ik vind dat nogal wat, dns traffic van je huishouden monitoren..

you had me at EHLO


  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:22
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: 13:30
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


  • TheCeet
  • Registratie: Oktober 2012
  • Laatst online: 12:46
Hier op de Proxmox machine een testcontainer aangemaakt met AdGuard Home Edge channel installed.
De UI ziet er frisser uit, meer in de lijn van hun adblock browser plugin.
Benieuwd wanneer ze deze willen releasen in productie.

Indien gewenst kan ik wel wat screenshots nemen en hier sharen.

Edit:
Paar screenshots genomen
In footer: Version v1.0.0-a.7+7729d8c5, staat nergens op genomen screenshots.

Afbeeldingslocatie: https://tweakers.net/i/CP9psRsee719gsINj-6-qUz7v9s=/800x/filters:strip_icc():strip_exif()/f/image/0yUQtyV1fDazsDglxDwsI1tN.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/-Z9C8qwrMr7PGaDGCyP_PttRXzk=/800x/filters:strip_icc():strip_exif()/f/image/2zRKm9CRoJCSfZrL9EPun3uL.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/wgXQXHMD-u6viOF6niP4uFgNDBw=/800x/filters:strip_icc():strip_exif()/f/image/GeKJQ0JSJmhinIb6yoISPbu0.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/G5NDnYgbAFDGGbe3-peape27-n4=/800x/filters:strip_icc():strip_exif()/f/image/uQIPPCLq2Mjw4R8QcimR51yE.jpg?f=fotoalbum_large

[ Voor 73% gewijzigd door TheCeet op 16-07-2026 12:30 ]


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 08:52
TheCeet schreef op donderdag 16 juli 2026 @ 09:35:
Hier op de Proxmox machine een testcontainer aangemaakt met AdGuard Home Edge channel installed.
De UI ziet er frisser uit, meer in de lijn van hun adblock browser plugin.
Benieuwd wanneer ze deze willen releasen in productie.
Ach, wat is 'frisser'? Voor mij gaan functie voor vorm. Voor die paar keer per jaar dat ik de GUI van Adguard Home open stoor ik me niet aan een lay out die door sommigen misschien als verouderd wordt gezien.

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 18:21
stormfly schreef op woensdag 30 april 2025 @ 21:16:
[...]
waar ik wel naar uitkijk is DoH/3 of native QUIC. DoH/3 over HTTPv3 dat is UDP QUIC gebaseerd zonder TCP. Dat is alleen nog niet heel breed beschikbaar, beide zijn zeldzaam ondersteund.

Voor nu is 9.9.9.9 heel erg snel
[...]
Sinds maart dit jaar ondersteunt Quad9 ook DoQ, oftewel DNS-over-QUIC. Ik ben sinds vorige conversatie met jou, overgestapt van Odido naar Youfone en had 195.121.1.34 (KPN) en 195.121.1.66 (KPN) als upstream staan (ging zo'n 80-85% van de lookups heen), samen met 9.9.9.9 en 185.222.222.222 (DNS.SB) en 86.54.11.100 (DNS4EU). Allen unencrypted dus.

Maar ik wilde toch nog weer eens Europese, versleutelde DNS-servers een kans geven. Toen zag ik dus dat Quad9 nu DoQ kan en die is echt heel snel, zit bij mij op 8ms gemiddeld vanaf een Youfone glaslijn (AS1136). Heel wat Europese DNS-servers erin gezet (en bij allen zowel DoH + DoT en daarnaast DoH/3 en DoQ als ze dat ondersteunden). Cache geflushed, stats leeg en paar dagen aangekeken. Als secondary en tertiary kwamen DNS.SB en DNS4EU eruit.

Dit zijn nu mijn upstreams, op volgorde van snelheid (bepaald aan de hand van waar meeste lookups heen gaan, instelling 'parallel requests'. De response time kolom in AGH is volgens mij puur een ping):
code:
1
2
3
quic://dns.quad9.net
tls://unfiltered.joindns4.eu:853
https://dns.sb/dns-query

[ Voor 4% gewijzigd door ThinkPad op 28-08-2026 15:31 ]


  • stormfly
  • Registratie: Juli 2001
  • Niet online
ThinkPad schreef op vrijdag 28 augustus 2026 @ 12:26:
[...]

Sinds maart dit jaar ondersteunt Quad9 ook DoQ, oftewel DNS-over-QUIC. Ik ben ook overgestapt van Odido naar Youfone en had 195.121.1.34 (KPN) en 195.121.1.66 (KPN) als upstream staan (ging zo'n 80-85% van de lookups heen), samen met 9.9.9.9 en 185.222.222.222 (DNS.SB) en 86.54.11.100 (DNS4EU).

Maar ik wilde toch nog weer eens Europese, versleutelde DNS-servers een kans geven. Toen zag ik dus dat Quad9 nu DoQ kan en die is echt heel snel, zit bij mij op 8ms gemiddeld vanaf een Youfone glaslijn. Heel wat Europese DNS-servers erin gezet (en bij allen zowel DoH + DoT en daarnaast DoH/3 en DoQ als ze dat ondersteunden). Cache geflushed, stats leeg en paar dagen aangekeken. Als secondary en tertiary kwamen DNS.SB en DNS4EU eruit.

Dit zijn nu mijn upstreams, op volgorde van snelheid (bepaald aan de hand van waar meeste lookups heen gaan, instelling 'parallel requests'. De response time kolom in AGH is volgens mij puur een ping):
code:
1
2
3
quic://dns.quad9.net
tls://unfiltered.joindns4.eu:853
https://dns.sb/dns-query
Heel fijn dat je dit deelt dat heb ik gemist en QUIC is toch wel heel snel, ik schat in de snelste van de versleutelde varianten.

QUIC also reduces connection setup time. A new TLS-over-TCP connection requires the TCP handshake to complete before the TLS handshake can begin. QUIC merges these steps, reaching an encrypted session in fewer round trips. DNS is latency-sensitive by nature, so lower connection setup overhead has a real effect on response times. QUIC also allows clients to move between networks without unnecessary renegotiation overhead, so an active session survives a network change where a TCP-based transport would not.

Had recent nog even zitten vogelen met AGH, als mijn glasvezel uitvalt dan vervalt mijn IPv6 access en gaat het naar IPv4 5G only. Echter...AGH bleef stug IPv6 proberen omdat alle encrypted resolvers ook een AAAA record adverteren, als oplossing heb ik toen 9.9.9.9 toegevoegd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
➜  ~ host dns.quad9.net
dns.quad9.net has address 149.112.112.112
dns.quad9.net has address 9.9.9.9
dns.quad9.net has IPv6 address 2620:fe::fe
dns.quad9.net has IPv6 address 2620:fe::9
dns.quad9.net mail is handled by 10 mail.quad9.net.

➜  ~ host unfiltered.joindns4.eu
unfiltered.joindns4.eu has address 86.54.11.100
unfiltered.joindns4.eu has address 86.54.11.200
unfiltered.joindns4.eu has IPv6 address 2a13:1001::86:54:11:200
unfiltered.joindns4.eu has IPv6 address 2a13:1001::86:54:11:100

➜  ~ host dns.sb
dns.sb has address 45.11.45.11
dns.sb has address 185.222.222.222
dns.sb has IPv6 address 2a11::
dns.sb has IPv6 address 2a09::
dns.sb mail is handled by 10 mail.xtom.email.

[ Voor 10% gewijzigd door stormfly op 28-08-2026 12:32 ]


  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 13:30
Heb de quic van quad9 ook eens toegevoegd, al was ik met de TLS variant ook al blij - toch bijna de helft van Cloudflare:
code:
1
2
tls://dns.quad9.net:853  7ms
tls://1.1.1.1:853  12 ms
edit;

Oh, de eerste averages van de quicquad9 zitten op 5ms 8)7

[ Voor 15% gewijzigd door Hmmbob op 28-08-2026 19:04 ]

Sometimes you need to plan for coincidence


  • qwasd
  • Registratie: September 2012
  • Laatst online: 01:42
Hmmbob schreef op vrijdag 28 augustus 2026 @ 19:03:
Heb de quic van quad9 ook eens toegevoegd, al was ik met de TLS variant ook al blij - toch bijna de helft van Cloudflare:
code:
1
2
tls://dns.quad9.net:853  7ms
tls://1.1.1.1:853  12 ms
edit;

Oh, de eerste averages van de quicquad9 zitten op 5ms 8)7
Ik draai al tijden Quad9 en Cloudflare via DNS over HTTPS als upstream. Kan ik hier nog een verbeterslag in maken door quic of tls te gebruiken? en waarom het ene en niet het andere?

  • stormfly
  • Registratie: Juli 2001
  • Niet online
qwasd schreef op vrijdag 28 augustus 2026 @ 19:56:
[...]

Ik draai al tijden Quad9 en Cloudflare via DNS over HTTPS als upstream. Kan ik hier nog een verbeterslag in maken door quic of tls te gebruiken? en waarom het ene en niet het andere?
  • QUIC heeft een kleine setup overhead, alleen minder dan TCP (three way handshake) + losse TLS handshake apart; 1-RTT voor een nieuwe verbinding, 0-RTT alleen bij hervatting van een eerdere sessie
  • DoT is meestal iets sneller dan DoH omdat je de HTTP overhead mist
  • DoH is daardoor vaak de traagste van de versleutelde opties
  • HTTP/3 of DoH3 (vers van de pers, niet overal ondersteund) draait ook op QUIC, dus met HTTP overhead, maar wel de snellere QUIC-handshake, en kan daardoor weer sneller zijn dan DoT
@ThinkPad h3://dns.sb/dns-query werkt hier ook ;-) en h3://unfiltered.joindns4.eu/dns-query niet.

[ Voor 32% gewijzigd door stormfly op 29-08-2026 11:08 ]


  • Thomox
  • Registratie: Augustus 2018
  • Laatst online: 14:28
Ik heb een vraag die gerelateerd is op dit topic. Ik draai al tijden een openVPN server in een tp-link deco.

Sinds een tijdje kan ik niet meer vanuit mijn 5G verbinding maken met de vpn. Vanuit wifi is geen probleem. Hij blijft 'looking up DNS name' aangeven.. als ik vanuit wifi eerst verbindt om vervolgens op 5G verder te gaan ervaar ik geen problemen.

AI gaf iets als ipv4 en 6, dat heb ik geprobeerd, geen verbetering. Wat zou dit kunnen zijn?

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:22
Thomox schreef op zaterdag 29 augustus 2026 @ 11:44:
Ik heb een vraag die gerelateerd is op dit topic. Ik draai al tijden een openVPN server in een tp-link deco.

Sinds een tijdje kan ik niet meer vanuit mijn 5G verbinding maken met de vpn. Vanuit wifi is geen probleem. Hij blijft 'looking up DNS name' aangeven.. als ik vanuit wifi eerst verbindt om vervolgens op 5G verder te gaan ervaar ik geen problemen.

AI gaf iets als ipv4 en 6, dat heb ik geprobeerd, geen verbetering. Wat zou dit kunnen zijn?
Is je ‘vpn.domain.tld’ extern bekend middels een A-record bij je DNS provider? Gebruik je je Adguard Home ook als je 5G gebruikt?

  • pelt
  • Registratie: December 2006
  • Laatst online: 09:43
ThinkPad schreef op vrijdag 28 augustus 2026 @ 12:26:
[...]

.

Dit zijn nu mijn upstreams, op volgorde van snelheid (bepaald aan de hand van waar meeste lookups heen gaan, instelling 'parallel requests'. De response time kolom in AGH is volgens mij puur een ping):
code:
1
2
3
quic://dns.quad9.net
tls://unfiltered.joindns4.eu:853
https://dns.sb/dns-query
Zet je het vinkje vervolgens dan weer uit? En dus alleen om te testen aan?

  • Thomox
  • Registratie: Augustus 2018
  • Laatst online: 14:28
lolgast schreef op zaterdag 29 augustus 2026 @ 11:52:
[...]

Is je ‘vpn.domain.tld’ extern bekend middels een A-record bij je DNS provider? Gebruik je je Adguard Home ook als je 5G gebruikt?
Ik heb de Google DNS ingesteld op mijn provider, wellicht moet ik die op 'auto' instellen zodat de provider gevonden kan worden?

Even ter bevestiging, ik gebruik geen AdGuard, enkel openVPN met een ingeladen certificaat op mn telefoon

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 18:21
pelt schreef op zaterdag 29 augustus 2026 @ 12:02:
[...]

Zet je het vinkje vervolgens dan weer uit? En dus alleen om te testen aan?
Nee je moet een optie kiezen. De “parallel requests” zorgt volgens mij voor snelste werking, meen ook dat dat de default is.

@Thomox Ik zou switchen naar Wireguard i.p.v. OpenVPN. Sneller en vraagt minder resources en dus minder batterijgebruik.

  • Thomox
  • Registratie: Augustus 2018
  • Laatst online: 14:28
ThinkPad schreef op zaterdag 29 augustus 2026 @ 12:45:
[...]

Nee je moet een optie kiezen. De “parallel requests” zorgt volgens mij voor snelste werking, meen ook dat dat de default is.

@Thomox Ik zou switchen naar Wireguard i.p.v. OpenVPN. Sneller en vraagt minder resources en dus minder batterijgebruik.
Ga ik me even in verdiepen, dankjewel :)

  • pelt
  • Registratie: December 2006
  • Laatst online: 09:43
Ik draaide altijd AH in mijn Home Assistant setup, maar die wilde ik eigenlijk wat versimpelen en er echt alleen home automation op te draaien.

Toen AH op mijn Unraid server gedraaid. Maar doe herstartte ik vrij vaak waardoor er tijdelijk even geen internet meer was in huis.

Op dit moment heb ik 3 (betaalde) DoH-ervers (ControlD, Adguard DNS, NextDNS) in mijn router geconfigureerd.

Dit werkt eigenlijk prima. Toch wil de Tweaker in mij het liefst zelf hosten.

Hebben jullie gewoon 1 instance draaien of ook een backup instance mocht 1 van de 2 falen?

  • GioStyle
  • Registratie: Januari 2010
  • Nu online
Twee instances op twee hosts met één VIP (Virtual IP) icm Keepalived. Alle cliënts in het netwerk worden doorverwezen naar de specifieke VIP. Als er hier geen internet is, dan ligt het aan de ISP.

[ Voor 50% gewijzigd door GioStyle op 29-08-2026 15:57 ]


  • stormfly
  • Registratie: Juli 2001
  • Niet online
GioStyle schreef op zaterdag 29 augustus 2026 @ 13:58:
Twee instances op twee hosts met één VIP (Virual IP) icm Keepalived. Alle cliënts in het netwerk worden doorverwezen naar de specifieke VIP. Als er hier geen internet is, dan ligt het aan de ISP.
Hier ook werkt erg goed. Heb tegenwoordig unicast ipv multicast keepalived, had issues met failover en virtuele switches, weet het niet meer. Scheelt ook weer onnodig multicast verkeer op wifi 8) (Multicast wordt op de laagste wifi datarate uitgezonden)

[ Voor 11% gewijzigd door stormfly op 29-08-2026 15:09 ]


  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 13:30
stormfly schreef op zaterdag 29 augustus 2026 @ 10:52:
  • QUIC heeft een kleine setup overhead, alleen minder dan TCP (three way handshake) + losse TLS handshake apart; 1-RTT voor een nieuwe verbinding, 0-RTT alleen bij hervatting van een eerdere sessie
  • DoT is meestal iets sneller dan DoH omdat je de HTTP overhead mist
  • DoH is daardoor vaak de traagste van de versleutelde opties
  • HTTP/3 of DoH3 (vers van de pers, niet overal ondersteund) draait ook op QUIC, dus met HTTP overhead, maar wel de snellere QUIC-handshake, en kan daardoor weer sneller zijn dan DoT
@ThinkPad h3://dns.sb/dns-query werkt hier ook ;-) en h3://unfiltered.joindns4.eu/dns-query niet.
TLS en QUIC op Quad9 lijken even snel te zijn

tls://1.1.1.1:853 12 ms
quic://dns.quad9.net:853 7 ms
tls://dns.quad9.net:853 7 ms

Sometimes you need to plan for coincidence


  • stormfly
  • Registratie: Juli 2001
  • Niet online
Hmmbob schreef op zaterdag 29 augustus 2026 @ 16:51:
[...]

TLS en QUIC op Quad9 lijken even snel te zijn

tls://1.1.1.1:853 12 ms
quic://dns.quad9.net:853 7 ms
tls://dns.quad9.net:853 7 ms
Als dit uit de GUI van Adguard komt dan is dat volgens mij slechts een ping test, en geen resolve test. Ping eens vanaf een bedrade machine naar dns.quad9.net

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 18:21
Daarom gebruik ik die kolom ook niet. Stats en cache resetten en die linkerkolom in de gaten houden, dan zie je vanzelf waar de meeste requests heen gaan.
Pagina: 1 ... 32 33 Laatste