DNS-Cache unter Linux leeren

DNS-Cache unter Linux leeren

Ich arbeite auf meinem Laptop mit Linux und konnte über die URL nicht auf eine bestimmte Website zugreifen. Ich habe versucht, sudo /etc/init.d/nscd restartden DNS-Cache zu leeren, aber die URL zeigt in Firefox immer noch „Server nicht gefunden“ an. Ich habe es auch mit Chrome versucht, aber es funktioniert immer noch nicht. Andere Freunde können die Webseite sehen, ich jedoch nicht. Was könnte also die Hauptursache dafür sein? Ich kann problemlos auf anderen Websites surfen.

Seltsamerweise wird mir, wenn ich auch nur die IP-Adresse dieser bestimmten URL eingebe, eine andere Seite angezeigt als die, die andere Leute sehen.

Ich bin für jede Hilfe in dieser Angelegenheit dankbar.

Antwort1

bindSofern Sie es nicht versehentlich ausführen, sollten Sie Ihre nscdKonfigurationsdatei unter überprüfen /etc/nscd.conf.

Es werden die gespeicherten Caches aufgelistet.

 enable-cache            hosts           yes
 positive-time-to-live   hosts           3600
 .......

# nscd -?

-g, --statistics Print current configuration statistics

-i, --invalidate=TABLE Invalidate the specified cache

nscd -g

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
        384  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
        128  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          3  current number of cached values
          7  maximum number of cached values
          2  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

# nscd -i hosts

Dadurch wird der Cache ungültig.

Aber danach gab es keine Änderung an den Host-Einträgen. nscd -g Nach dem Neustart nscdwurden sie gelöscht.

service nscd restart

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
          0  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
          0  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          0  current number of cached values
          0  maximum number of cached values
          0  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

Sofern Sie nicht „Bind“ ausführen, ist dies die einzige Möglichkeit, den Cache zu leeren, ohne die Datenbank zu finden nscdund zu löschen, was zu anderen Problemen führen könnte. Ich würde die Fehlerbehebungsverfahren für die IP-Auflösung befolgen. Ich habe einige davon in den Kommentaren zu Ihrer Frage skizziert.

Dies ist ein Link zu einem ziemlich guten Artikel im Linux Journal überBeheben von Netzwerkproblemen.

Antwort2

Ich weiß, dass es eine alte Frage ist, aber ich füge sie hinzu, für den Fall, dass jemand erneut mit diesem Problem konfrontiert wird.

Als ich heute Morgen ein ähnliches Problem mit dem DNS-Client-Cache hatte, habe ich alle üblichen Schritte ausgeführt, um den von gespeicherten Cache zu löschen, nscdund, wie in der ersten Antwort erwähnt, neu gestartet . Ich habe sogar den OS-Cache gelöscht, aber ein bestimmter Hostname wurde immer noch in die alte IP-Adresse aufgelöst. Die Auflösung begann erst, nachdem ich die Zeile aus resolv.conf nscdentfernt hatte .nameserver 127.0.0.1

verwandte Informationen