DNS-cache spoelen in OS X Yosemite met discoveryutil
Inhoudsopgave:
- DNS-cache wissen in OS X Yosemite 10.10.4 & OS X 10.10.5
- DNS-caches wissen in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Sommige Mac-gebruikers kunnen situaties tegenkomen waarin ze de DNS-cache in OS X moeten legen om een nameserver correct te laten oplossen, of om een DNS-adreswijziging door hun individuele computer te laten opmerken. Dit is met name relevant voor systeembeheerders, netwerkbeheerders en webontwikkelaars, maar er zijn zeker situaties waarin andere gebruikers mogelijk ook DNS-caches moeten dumpen en resetten, bijvoorbeeld als een gebruiker het /etc/hosts-bestand heeft gewijzigd en zij de wijzigingen nodig hebben om van kracht te worden zonder de Mac opnieuw op te starten.
Langdurige Mac-gebruikers zullen weten dat het opnieuw instellen van de DNS-cache is veranderd in bijna elke versie van Mac OS X, en OS X Yosemite is niet anders, waarschijnlijk vanwege de ontdekking die mDNSResponder vervangt en vervolgens terugschakelt naar mDNSResponder nogmaals. Hoe dan ook, het doorspoelen van de DNS-cache in Yosemite blijft een terminalopdracht, maar het verschilt enigszins, afhankelijk van de exacte release die je van het besturingssysteem gebruikt, en je kunt er zelfs Multicast DNS of Unicast DNS, of beide, wissen. U wilt waarschijnlijk beide voor de zekerheid wissen als u probeert alle DNS-caches op de Mac opnieuw in te stellen.
DNS-cache wissen in OS X Yosemite 10.10.4 & OS X 10.10.5
Vanaf OS X 10.10.4 en verder naar 10.10.5, inclusief 10.11, heeft Apple de discoveryd laten vallen en vervangen door mDNSResponder. Dus om DNS-caches te wissen in OS X Yosemite 10.10.4 en 10.11 El Capitan, en vermoedelijk verder, is de opdrachtreeks als volgt:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;zeg cache leeggemaakt
Dat commando leegt alle DNS-caches voor OS X 10.10.4+.
Langdurige Mac-gebruikers herinneren zich misschien dat de commandoreeks in feite werkte in de release voorafgaand aan Yosemite. Dat gezegd hebbende, zullen eerdere versies van OS X Yosemite vóór 10.10.4 een andere opdrachtreeks gebruiken die hieronder wordt besproken.
DNS-caches wissen in OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Je moet de Terminal gebruiken om de cache opnieuw in te stellen, je kunt de Terminal-app vinden in /Applications/Utilities/ of starten met Spotlight. Om alle DNS-caches in de nieuwste versie van OS X volledig te wissen, target je zowel MDNS (Multicast DNS) als UDNS (Unicast DNS) met twee verschillende opdrachten.
MDNS-cache wissen
sudo discoveryutil mdnsflushcache
Klik op Return en voer het beheerderswachtwoord in wanneer daarom wordt gevraagd.
UDNS-cache wissen
sudo discoveryutil udnsflushcaches
Nogmaals, druk op Return en voer het beheerderswachtwoord in wanneer daarom wordt gevraagd. Merk op dat caches meervoud is bij het laatste commando, een subtiel maar belangrijk verschil in syntaxis.
Alle DNS-caches spoelen en resetten in OS X Yosemite
Je kunt de bovenstaande twee commando's ook aan elkaar rijgen als je wilt, het volgende zal zelfs verbaal aankondigen wanneer de caches zijn gewist:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;zeg gespoeld
Inderdaad, MDNS- en UDNS-caches zijn verschillend, maar ik heb gemerkt dat beide opdrachten nodig zijn om de functionele DNS-cache daadwerkelijk te wissen in OS X Yosemite. Het is heel goed mogelijk dat u alleen het een of het ander hoeft op te ruimen voor uw eigen behoeften.
Voor wie het zich afvraagt: OS X Yosemite heeft mDNSResponder afgeschaft, dus het is niet nodig om dat mDNSResponder-proces te beëindigen om DNS-caches te vernieuwen, zoals in eerdere versies van Mac OS X.
DNS-cachedetails controleren in OS X Yosemite
Als u DNS wijzigt of gaat wijzigen en u wilt wat details zien over wat er momenteel in de cache is opgeslagen, kunt u de volgende opdrachten gebruiken:
UDNS-cachestatistieken ophalen:
sudo discoveryutil udnscachestats
U kunt ook details over multicast DNS-cache ophalen met het volgende:
sudo discoveryutil mdnscachestats
Beide bieden details over het aantal DNS-vermeldingen in de cache en bieden een rapport dat er als volgt uit zou moeten zien:
UDNS-cachestatistieken: in cache 962 van 1750
Als je deze commando's voor en na het uitvoeren van de flushcachevariaties uitvoert, zul je merken dat ze teruggezet moeten worden naar 0 entries cache, zoals:
MDNS-cachestatistieken: lo0: in cache 0 van 2000
Hoe weet je of het gewijzigd is?
Nadat je de cache hebt geleegd, kun je, als je wilt bepalen of een naamserver of IP daadwerkelijk is gewijzigd, het commando 'dig' gebruiken met de URL als volgt:
dig osxdaily.com
dig is vergelijkbaar met nslookup, behalve dat het een betere uitvoer heeft en een paar meer details bevat, inclusief querytijd, de ingestelde DNS-server die wordt gebruikt om toegang te krijgen tot het domein en een tijdstempel, die allemaal kunnen worden waardevol bij het oplossen van naamserverproblemen. Trouwens, als de zoektijd hiervoor traag is, moet je een tool als namebench gebruiken om een snellere DNS-server voor je te vinden, vaak Google DNS of OpenDNS.
Ken je nog een DNS-cachetruc voor de nieuwste versies van OS X? Laat het ons weten in de comments.