Je viens mis à jour l'enregistrement DNS ( ns1
, ns2
, ns3.myhostingcompany.com
) pour un site que j'ai accueilli, mais je reçois toujours la page de stationnement de bureau d' enregistrement de domaine.
J'aimerais savoir si le problème vient des enregistrements DNS en cache d'Ubuntu. Est-il possible d'effacer le cache DNS d'Ubuntu? (si une telle chose existe?)
networking
dns
Jono
la source
la source
/etc/hosts
. Je viens d’être certain que l’ancienne adresse IP de mon domaine était en cours de mise en cache, maisstrace ping example.com
j’ai seulement révélé que j’avais oublié de supprimer l’/etc/hosts
enregistrement que j’avais ajouté il ya un moment à cause du manque de patience pour la propagation DNS.Réponses:
Pour 18.04 et plus
Regardez la réponse de Mike Shultz .
Pour 11.10 et moins
Ubuntu ne met pas en cache les enregistrements DNS par défaut. Par conséquent, à moins d'installer un cache DNS, rien ne doit être effacé.
Les enregistrements DNS sont probablement mis en cache par les serveurs DNS de votre fournisseur. Ainsi, si vous souhaitez vérifier si les modifications DNS que vous avez apportées ont abouti, vous pouvez interroger un serveur DNS à partir de votre service d'hébergement de domaine avec dig:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
Si vous voulez qu'Ubuntu commence à mettre en cache les dns, je recommande l'installation
pdnsd
avecresolvconf
.nscd
est buggy et pas conseillé.la source
Ubuntu 17.04 et supérieur (18.04)
A partir d'Ubuntu 17.04 et ultérieur, systemd-resol est utilisé pour DNS. Vous pouvez vider les caches de systemd comme ceci:
la source
sudo systemd-resolve --statistics
systemctl restart systemd-resolved.service
a également travaillé le 18.04.12.04
Ubuntu 12.04 utilise
dnsmasq
ce qui est intégrénetwork-manager
, mais il ne met pas en cache le DNS, il n’est donc pas nécessaire de le vider. Voici un exemple de ligne de masyslog
preuve pour le prouver:Il n'y a pas non plus besoin de configuration de
dnsmasq
. Si vous utilisez des paramètres de stock, la mise en cache de DNS ne sera pas mise en cache. Pour ce faire, vous devez le configurer explicitement, comme décrit dans cet article sur Ubuntu .Si vous souhaitez actualiser vos paramètres, vous pouvez désactiver puis activer la mise en réseau ou exécuter
Cela redémarre
dnsmasq
car il est intégré ànetwork-manager
; vérifiez votresyslog
preuve pour cela.Si vous utilisez une connexion filaire avec dhcp
network manager
, les paramètres seront directement pris de votre routeur et votre connexion sera automatiquement établie lorsque vous vous connecterez à Ubuntu. Vous pouvez vérifier que les paramètres de votre routeur sont corrects si vous pouvez y accéder via l'interface Web et éventuellement le redémarrer si nécessaire. S'il s'agit d'un problème général avec DNS, vous pouvez essayer d'utiliser Google DNS au lieu de votre DNS isp. Pour plus d'informations à ce sujet, cliquez ici .la source
sudo service network-manager restart
a fait le tour pour moi avec DebianNotez que Ubuntu utilise systemd-resol à partir de 17.04 et que cette réponse ne s'applique donc plus aux versions récentes d'Ubuntu. Voir " vider le cache DNS dans Ubuntu 17.04 et supérieur (18.04) "
Par défaut, le DNS n'est pas mis en cache dans Ubuntu <17.04 (mais il peut l'être dans le réseau ou l'application)
Pour confirmer d'une manière ou d'une autre s'il
dnsmasq
s'agit de la mise en cache, exécutezps ax | grep dnsmasq
et examinez la commande en cours d'exécution. Voici une ventilation de ma machine 13.10 par défaut:/etc/NetworkManager/dnsmasq.d
est vide par défaut. Donc, il n'y a pas de dérogation qui arrive et juste pour vérifier--cache-size=0
signifie ce que nous pensons que cela signifie (au lieu d'un cache illimité ),man dnsmasq
montre:Par conséquent , même s'il est
dnsmasq
possible de mettre en cache DNS, il ne cache pas. Vous pouvez vérifier votre machine et divers répertoires de configuration pour vérifier que vous êtes sur la même page.Si vous rencontrez des problèmes de cache, cela se produit probablement à l'un des endroits suivants:
Je racle le baril ici, mais vous avez peut-être installé un serveur DNS non standard dans Ubuntu au lieu d'activer la mise en cache
dnsmasq
. Il y a beaucoup:nscd
, DJBDNSdnscache
(alias tinydns),pdns
,pdnsd
, Bind9 (et ses variantes), et plus je ne peux pas me souviens même pas. Celles-ci seront probablement mises en évidence/etc/resolv.conf
(avec config dans / etc / resolvconf / `pour autoriser ce fichier). Voici une requête DNS interceptée localement:Si vous ne cliquez pas sur 8.8.8.8 (ou sur ce que vous attendez de votre serveur DNS), vérifiez ce que vous frappez à la place. Dans mon cas, je peux voir que ceci est juste
dnsmasq
configuré pour refléter les requêtes DNS en arrière pour LXC, mais dans votre cas, cela pourrait faire de mauvaises choses en cache.Si vous avez créé l'une des caches répertoriées, le processus de suppression de chacune varie:
Sur une note légèrement liée, voir ceci pour activer la mise en cache dans
dnsmasq
.la source
Pour 12.04:
Ubuntu 12.04 met en cache le DNS en utilisant dnsmasq (voir
man dnsmasq
). Utilisez ce qui suit pour vider le cache:la source
sudo killall -HUP dnsmasq
?pkill
au lieu dekill
etpgrep
sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
Vous pouvez également vérifier si vos modifications DNS ont été propagées à l'aide de dig et si vous vous en tenez à quelqu'un d'autre que vos serveurs DNS par défaut. Dans ce cas, google DNS.
dig @8.8.8.8 example.com
la source
Personnellement, j'utiliserais OpenDNS et utiliserais leur fonction de vérification du cache pour forcer une actualisation juste pour m'assurer que les modifications fonctionnent, mais vous ne pouvez pas garantir qu'elles actualiseront pour vos utilisateurs dans les 48 heures.
Le DNS est une bête lente. La patience vous gardera sain d'esprit.
la source
Si vous utilisez nscd:
Il convient de mentionner que ce n'est peut-être pas le système d'exploitation qui le met en cache. Tout le monde aime mettre en cache le DNS ... Quelques tests:
Vérifiez s'il s'agit de la nouvelle ou de l'ancienne adresse IP. La plupart des navigateurs mettent également le DNS en cache. Par conséquent, si vous n'avez pas redémarré Chromium ou que vous n'ayez peut-être pas accès à la version la plus récente.
Basculez votre serveur de noms local dans /etc/resolv.conf vers un autre fournisseur, Google ou un autre niveau, par exemple:
Et puis à nouveau ping.
Vérifiez que votre routeur ne met pas le DNS en cache sous quelque forme que ce soit. (Varie selon le routeur / firmware / etc)
Enfin, patience. Le DNS peut prendre un peu de temps pour se propager sur Internet.
la source
Toutes les réponses ci-dessus ont oublié une chose importante dans la résolution de noms: généralement, les serveurs DNS auxquels vous demandez la résolution de noms ne sont pas ceux qui conservent les enregistrements eux-mêmes (le serveur faisant autorité). Chaque enregistrement DNS étant associé à une valeur Time To Live, ce qui obligera chaque serveur DNS de la chaîne de résolution à effectuer la mise en cache pendant le nombre de secondes indiqué par cette valeur. Ainsi, non seulement vous pouvez mettre en cache votre ordinateur, mais CERTAINEMENT le résultat de la recherche de nom sera mis en cache quelque part sur un serveur que vous ne contrôlez pas.
La seule solution pour être immédiatement averti d'un changement d'enregistrement de nom consiste à utiliser une valeur TTL de 0 lors de la création / mise à jour de l'entrée dans le serveur de noms faisant autorité. Mais cela signifie que pour chaque résolution de nom, le serveur sera touché, ce qui n’est généralement pas autorisé par les bureaux d’enregistrement. Par exemple, ils peuvent fournir une liste de valeurs TTL prédéfinies que vous pouvez choisir.
Je gère différents noms de domaine et pour m'assurer que les modifications sont bien appliquées dans les serveurs de noms faisant autorité, j'utilise un outil appelé
dnstracer
permettant d'afficher le résultat de la recherche sur chaque serveur à partir de la racine DNS.En conclusion, même sans solution de mise en cache DNS en place, il y aura toujours un délai entre le moment où vous modifiez les enregistrements DNS et le changement observé sur un PC. Ce délai dépend grandement de la durée de vie des enregistrements et du nombre de serveurs DNS entre votre PC et le serveur de noms faisant autorité.
la source
Pour Ubuntu 14.04, je recommande cette commande:
la source
J'ai utilisé la commande suivante pour vider le cache DNS sur ma boîte 12.10 ubuntu et cela a fonctionné à merveille.
Un autre signal utile est le SIGUSR1, qui envoie une petite statistique à syslog ou notée par
man dnsmasq
:la source
pkill
au lieu dekill
etpgrep
Sous Ubuntu 16.04, je ne pouvais pas effacer le cache sans le faire:
la source
J'ai aussi trouvé des contradictions, mais ceci: https://superuser.com/a/521562 woks pour moi (Ubuntu 13.10 avec les dernières mises à jour, aucun package réseau spécial installé).
En bref, utilisez simplement ceci
sudo /etc/init.d/dns-clean
la source
Je recommande spécialement openDNS sur les serveurs distants Ubuntu, cela facilite beaucoup la tâche ...
Comment faire? Bien...
insérez ceci AVANT la ligne "request subnet-mask ..."
cela redémarrera l'interface si rapidement que vous ne devriez même pas perdre votre connexion SSH
vérifiez ceci pour voir si vos nouveaux OpenDNS sont correctement installés
la source