Очистка кэша DNS в Linux

Очистка кэша DNS в Linux

Я работаю на Linux на своем ноутбуке, я не мог получить доступ к определенному веб-сайту с помощью URL, поэтому я использовал sudo /etc/init.d/nscd restartдля того, чтобы очистить кэш DNS, но URL все еще выдает «Сервер не найден» в Firefox. Я также пробовал Chrome, он все еще не работает. Другие друзья могут видеть веб-страницу, но я не могу. Так в чем может быть основная причина этого? Я могу прекрасно просматривать другие сайты.

Как ни странно, когда я пытаюсь ввести IP-адрес этого конкретного URL-адреса, мне показывается страница, отличная от той, которую видят другие люди.

Я буду признателен за любую помощь по этому вопросу.

решение1

Если вы не запустили его bindслучайно, вам следует проверить nscdфайл конфигурации, расположенный по адресу /etc/nscd.conf.

Он выведет список сохраненных кэшей.

 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

Это приведет к аннулированию кэша.

Но после этого записи хостов не изменились. nscd -g После перезапуска nscdони были очищены.

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

Если вы не используете bind, это единственный способ очистить кэш, не считая поиска базы данных nscdи ее удаления, что может вызвать другие проблемы. Я бы следовал процедурам устранения неполадок для разрешения IP. Я изложил некоторые из них в комментариях к вашему вопросу.

Это ссылка на довольно хорошую статью в Linux Journal оУстранение неполадок сети.

решение2

Я знаю, что это старый вопрос, но добавляю его на случай, если кто-то снова столкнется с этой проблемой.

Когда я столкнулся с похожей проблемой кэша DNS-клиента этим утром, я выполнил все обычные шаги по очистке кэша, сохраненного nscdи, как упоминалось в первом ответе, перезапустил nscd. Я даже удалил кэш ОС, но определенное имя хоста все еще разрешалось в старый IP-адрес. Оно начало разрешаться только после того, как я удалил строку nameserver 127.0.0.1из resolv.conf.

Связанный контент