Hoe voorkom je dat macOS DNS-aanvragen lekt (zelfs met een VPN aan)

donderdag, 7 mei 2026 (16:02) - Appletips.nl

In dit artikel:

Op macOS kan je VPN toch DNS-verzoeken laten lekken, zelfs als het tunnel-icoon groen brandt. De kern: macOS regelt naamresolutie via de systeemdienst mDNSResponder en een multi-resolverconfiguratie. VPN-clients moeten die systeeminstellingen op meerdere plaatsen tegelijk overschrijven om alle queries door de tunnel te dwingen; doen ze dat niet volledig, dan ontstaan lekken.

Waarom het gebeurt
- macOS heeft geen enkele universele schakelaar “stuur alle DNS via deze interface”. VPN-clients proberen via een combinatie van systeemresolver-instellingen, adapter-DNS, IPv6-beheer en kill switches het gewenste gedrag af te dwingen. Niet alle clients doen dit volledig.
- Bovendien bestaan er vier vaak voorkomende routes waardoor queries buiten de tunnel kunnen lopen: IPv6-verkeer wanneer de VPN alleen IPv4 tunneled; DNS-antwoorden die nog in de cache zaten van vóór de VPN; browser-specifieke DNS over HTTPS (DoH) die macOS omzeilt; en iCloud Private Relay dat sommige Safari-queries via Apple’s relays stuurt.

Hoe vaststellen of je lekt
- Gebruik dnsleaktest.com en kies de Extended Test: die toont alle gebruikte resolvers. Verschijnt de naam of het IP van je provider (Ziggo, KPN, etc.), dan is er een lek.
- Controleer wat macOS zelf als resolver ziet: via scutil --dns (Terminal). Als resolver #1 de DNS-servers van je provider toont in plaats van die van je VPN, dwingt de client de systeem-DNS niet af.
- Controleer op IPv6-lekken via ipv6-test.com of ipleak.net: als je echte ISP’s IPv6-adres verschijnt, bewaart of gebruikt macOS IPv6 buiten de tunnel.

Stapsgewijze fixes (werk van boven naar beneden en test na elke stap)
1) Zet in de VPN-client de optie aan die DNS via de tunnel forceert (opties heten o.a. “Use VPN DNS”, “Force DNS through tunnel” of vergelijkbaar). Verbind opnieuw en controleer scutil --dns.
2) IPv6: als de client IPv6 niet tunnelt, kun je IPv6 uitschakelen op je netwerkinterface (of - beter - kiezen voor een VPN die IPv6 correct meeneemt). Gebruik je Terminal of Systeeminstellingen om IPv6 uit te zetten voor Wi‑Fi/Ethernet en test opnieuw.
3) Stel expliciet veilige DNS-servers in op je netwerkadapter (bijv. Cloudflare 1.1.1.1 of Quad9 9.9.9.9) via Systeeminstellingen > Netwerk of via networksetup in Terminal. Dat voorkomt dat macOS terugvalt op de provider-DNS als de VPN-push faalt.
4) iCloud Private Relay: als actief kan het resultaten geven die niet overeenkomen met je VPN. Schakel Private Relay uit via Systeeminstellingen > iCloud > Private Relay en test opnieuw.
5) Browser-DoH: Chrome en Firefox kunnen hun eigen DNS over HTTPS doen en zo macOS omzeilen. Schakel DoH uit of zet het terug op “met huidige provider” zodat de browser de systeemresolver volgt (Safari volgt standaard de systeeminstellingen tenzij Private Relay aanstaat).
6) Maak de DNS-cache leeg: macOS en browsers houden caches bij. Flush de mDNSResponder-cache en herstart je browser om oude antwoorden te verwijderen.

Herhaal de drie tests (dnsleaktest Extended, scutil --dns, ipv6-test.com) na elke wijziging. Een succesvolle reparatie betekent: dnsleaktest toont alleen VPN-resolvers, scutil --dns heeft in resolver #1 de DNS van de VPN en ipv6-test toont geen ongetunneld IPv6-adres.

Wanneer het probleem bij de VPN-client zit
Als alle macOS-fixes zijn uitgevoerd en scutil --dns nog steeds provider-DNS toont, dwingt de client de DNS niet af — dat is een ontwerpkeuze van de client. Een solide macOS-VPN doet vier dingen: pusht en verifieert systeemniveau-DNS, behandelt IPv6 (tunnelt of blokkeert het), heeft een fail-closed kill switch en documenteert macOS-specifiek gedrag. Lukt dat niet, overweeg een andere client of aanbieder; sommige serieuze VPN’s (voorbeeld genoemd in de bron) voeren deze maatregelen correct uit.

Praktische kanttekeningen
- Als dnsleaktest na instellingen veranderen nog steeds je provider toont: controleer eerst browser‑ en OS-caches en gebruik scutil --dns voor een betrouwbare diagnose.
- IPv6 permanent uitschakelen is alleen een noodgreep als je VPN IPv6 niet meekrijgt; beter is een VPN die IPv6 goed afhandelt.
- iCloud Private Relay is geen volledige vervanger voor een VPN: het dekt slechts Safari en enkele systeemqueries en gebruikt Apple’s eigen relays.
- Als je lokale resolvers zoals Pi-hole of een hosts-bestand gebruikt, zullen adapter‑niveau DNS-wijzigingen die door een VPN of de fixes worden opgelegd die lokale resolvers omzeilen; configureer de VPN in dat geval om je lokale resolver als upstream te gebruiken of accepteer dat de VPN voorrang krijgt tijdens verbinding.

Conclusie
DNS-lekken op een Mac ontstaan doordat macOS meerdere analyseroutes en caches heeft en VPN-clients die niet alles op systeemniveau afdwingen. Met gerichte tests (Extended dnsleaktest, scutil --dns, ipv6-test) en een reeks fixes—VPN-DNS forceren, IPv6 behandelen, adapter-DNS instellen, Private Relay en DoH uitschakelen en caches flushen—los je de meeste problemen op. Als dat niet helpt, is het tijd voor een andere, macOS-gericht ontwikkelde VPN-client.