Как очистить кэш DNS?

Насколько я знаю

Насколько я знаю, KDE использует kbuildsycoca4 для создания кэша меню KDE. Затем средства запуска используют кеш для поиска и запуска программ.

Поиск ... «обновить меню kde» -> https://bbs.archlinux.org/viewtopic.php?id=64514

Если меню KDE не обновляется автоматически вы можете попытаться запустить kbuildsycoca4 из Konsole.

:~$ kbuildsycoca4 --help
Usage: kbuildsycoca4 [Qt-options] [KDE-options] [options] 

Rebuilds the system configuration cache.

Generic options:
  --help                    Show help about options
  --help-qt                 Show Qt specific options
  --help-kde                Show KDE specific options
  --help-all                Show all options
  --author                  Show author information
  -v, --version             Show version information
  --license                 Show license information
  --                        End of options

Options:
  --nosignal                Do not signal applications to update
  --noincremental           Disable incremental update, re-read everything
  --checkstamps             Check file timestamps
  --nocheckfiles            Disable checking files (dangerous)
  --global                  Create global database
  --menutest                Perform menu generation test run only
  --track          Track menu id for debug purposes

Пусковые установки

В KDE имеется множество пусковых установок: http://www.kubuntuforums.net/showthread.php?59851-KDE-Application-Launchers .

Mangonel рекламируют:

Mangonel, простой запуск приложений для KDE4.

Mangonel предназначен для замены легковесного, на мой взгляд, раздутого и медленного стандартного KRunner ...

blockquote>

Mangonel доступен в репозиториях Ubuntu: http://packages.ubuntu.com/search?keywords=mangonel&searchon=names&suite=all§ion=all [ 1113]

192
задан 03.06.2016, 03:53

14 ответов

Для 18.04 и выше

Посмотрите на ответ Майка Шульца .

Для 11.10 и ниже

Ubuntu по умолчанию не кэширует dns-записи, поэтому, если вы не установили dns-кеш, очищать нечего.

DNS-записи, вероятно, кэшируются DNS-серверами вашего провайдера, поэтому, если вы хотите проверить, были ли внесенные вами изменения DNS успешными, вы можете запросить DNS-сервер из службы хостинга вашего домена с помощью dig:

dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server

Если вы хотите, чтобы Ubuntu запускала кэширование DNS, я рекомендую установить pdnsd вместе с resolvconf. nscd глючит и не рекомендуется.

64
ответ дан 10.09.2019, 17:30
  • 1
    Любые ссылки на то, почему nscd глючит? Это все еще глючит сегодня (2012-10)? – lukeocom 27.09.2012, 02:13
  • 2
    Можете ли вы обновить свой ответ - ATM звучит так, как будто версии Ubuntu 11.10+ кэшируют записи DNS. – Ciro Corvino 08.02.2015, 15:08

12.04

Ubuntu 12.04 использует dnsmasq , который встроен в network-manager, но он не кэширует днс, поэтому нет необходимости сбрасывать Это. Вот пример строки из моего syslog, чтобы доказать эту точку:

dnsmasq[2980]: started, version 2.59 cache disabled

Также нет необходимости в какой-либо конфигурации dnsmasq. Если вы работаете со стандартными настройками, он не будет кэшировать dns, так как для этого вам нужно явно настроить его, как описано в статье Ubuntu .

Если вы хотите обновить свои настройки, вы можете отключить, а затем включить сетевое подключение или запустить

sudo service network-manager restart

Это перезапустит dnsmasq, поскольку оно встроено в network-manager; проверьте ваши syslog на доказательства этого.

Если вы используете проводное соединение с dhcp, network manager будет принимать настройки прямо с вашего роутера, и ваше соединение будет автоматически установлено при входе в Ubuntu. Вы можете проверить правильность настроек вашего роутера, если получите доступ к нему через веб-интерфейс, и, возможно, перезагрузите его, если это необходимо. Если это общая проблема с DNS, вы можете попробовать использовать Google DNS вместо ISP DNS, и более подробную информацию об этом подробно описано здесь .

70
ответ дан 10.09.2019, 17:30
  • 1
    sudo service network-manager restart помог мне с Debian – Adrian Moisa 28.10.2014, 21:01

Ubuntu 17.04 и выше (18.04)

Начиная с Ubuntu 17.04 и далее, systemd-разрешения используется для DNS. Вы можете очистить кэши systemd следующим образом:

sudo systemd-resolve --flush-caches
67
ответ дан 10.09.2019, 17:30
  • 1
    OMG, ты выйдешь за меня? Решил мою проблему с 18.04 тоже \ o / – Marc2001 09.05.2018, 06:37
  • 2
    Это не сработало для меня в 16.04 LTS - но было полезно увидеть еще один способ, которым он мог кэшироваться: sudo systemd-resolve --statistics – Servy 10.05.2018, 21:24
  • 3
    ты спас день – Bigeyes 29.03.2019, 01:29
  • 4
    Не работает 18.04 – Yair Nevet 24.04.2019, 22:53
  • 5
    Для меня, systemctl restart systemd-resolved.service действительно также работал над 18,04. – Erik Funkenbusch 08.05.2019, 22:04

Для 12.04:

Ubuntu 12.04 выполняет кеширование DNS с помощью dnsmasq (см. man dnsmasq). Используйте следующее, чтобы очистить кеш:

sudo kill -HUP $(pgrep dnsmasq)
39
ответ дан 10.09.2019, 17:30
  • 1
    Спасибо! Вы первый, кто видел упоминание о кэшировании по умолчанию в 12.04! – stakx 14.09.2012, 11:22
  • 2
    12.04 не кэширует днс по умолчанию - проверьте ваш системный журнал после перезапуска сетевого менеджера; в нем будет запись, показывающая, что dnsmasq запускается с отключенным кешем. – user34660 15.09.2012, 11:02
  • 3
    Я не знаю, включен ли кеш по умолчанию, но этот ответ сработал для меня. – stakx 08.01.2014, 12:45
  • 4
    Почему не просто sudo killall -HUP dnsmasq? – loneshark99 21.04.2014, 12:13
  • 5
    используйте pkill вместо kill и pgrep – Hans Passant 10.09.2014, 10:45

sudo /etc/init.d/nscd restart

http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html

Также в качестве обратите внимание, что вы можете проверить и узнать, распространились ли ваши изменения DNS, используя dig и глядя на кого-то, кроме ваших DNS-серверов по умолчанию. В этом случае Google DNS.

dig @8.8.8.8 example.com

15
ответ дан 10.09.2019, 17:30
  • 1
    Стоит отметить, что nscd не установлен по умолчанию. – Gavishiddappa Gadagi 19.01.2011, 08:05

Обратите внимание, что Ubuntu использует systemd-resolv начиная с 17.04 и далее, поэтому этот ответ больше не применяется к последним версиям Ubuntu. См. « сбросить кэш DNS в Ubuntu 17.04 и выше (18.04) »

По умолчанию DNS не кэшируется в Ubuntu < 17.04 (но он может быть кэширован в сети или в приложении)

Чтобы подтвердить тем или иным образом, кэширует ли dnsmasq, запустите ps ax | grep dnsmasq и посмотрите на команду running. Вот разбивка моей машины по умолчанию 13.10:

/usr/sbin/dnsmasq \
  --no-resolv \
  --keep-in-foreground \
  --no-hosts \
  --bind-interfaces \
  --pid-file=/var/run/NetworkManager/dnsmasq.pid \
  --listen-address=127.0.1.1 \
  --conf-file=/var/run/NetworkManager/dnsmasq.conf \
  --cache-size=0 \
  --proxy-dnssec \
  --enable-dbus=org.freedesktop.NetworkManager.dnsmasq \
  --conf-dir=/etc/NetworkManager/dnsmasq.d

/etc/NetworkManager/dnsmasq.d пусто по умолчанию. Таким образом, здесь нет никаких переопределений, и просто проверить --cache-size=0 означает, что мы думаем, что это означает (вместо неограниченного кэша), man dnsmasq показывает:

-c, --cache-size=<cachesize>
  Set the size of dnsmasq's cache. The default is 150 names. 
  Setting the cache size to zero disables caching.
[1133 ] Таким образом, хотя dnsmasq может кэшировать DNS, он не кэшируется из коробки. Вы можете проверить свою машину и различные каталоги конфигурации, чтобы убедиться, что вы находитесь на одной странице.

Если вы видите проблемы с кешем, это, вероятно, происходит в одном из нескольких мест:

  • Выше по течению от вашего компьютера. Кеш некоторых роутеров. Многие корпоративные сети будут кешировать DNS. Многие DNS-серверы работают под управлением интернет-провайдера и будут использовать свои собственные кэши. Единственный способ гарантировать защиту от сетевого кэша - использовать кэш, который вы можете обновить вручную. Вот почему я люблю OpenDNS.
  • В клиентском приложении (особенно в браузерах). Приложения могут выполнять все виды собственного кэширования, на которые Ubuntu не влияет. Как Firefox кэширует DNS . Как очистить DNS-кеш Chrome . Другие браузеры (и приложения) могут иметь свои собственные механизмы.
  • Я здесь очищаю ствол, но, возможно, вы установили нестандартный DNS-сервер в Ubuntu вместо того, чтобы включить кэширование в dnsmasq. Их много: nscd, DJBDNS dnscache (он же TinyDNS), pdns, pdnsd, Bind9 (и его варианты) и многое другое, что я даже не могу вспомнить. Они , вероятно, будут подтверждены в /etc/resolv.conf (с конфигурацией в / etc / resolvconf / `для автоматического создания этого файла). Ниже показан локально перехваченный DNS-запрос:

    $ nslookup askubuntu.com
    Server:     127.0.1.1
    Address:    127.0.1.1#53
    
    Non-authoritative answer:
    Name:   askubuntu.com
    Address: 198.252.206.24
    

    Если вы не используете 8.8.8.8 (или что-то еще, что вы ожидаете от DNS-сервера), проверьте, что вы нажимаете. В моем случае я вижу, что это просто dnsmasq, настроенный для зеркалирования DNS-запросов назад для LXC, но в вашем случае это может приводить к плохим кешированию.

    Если вы выполнили перечисленные кеши, процесс очистки каждого из них различается:

    sudo /etc/init.d/nscd reload    # nscd
    sudo /etc/init.d/named restart  # bind9
    

В слегка связанной заметке см. Это, чтобы включить кэширование в dnsmasq .

62
ответ дан 10.09.2019, 17:30

Лично я бы использовал OpenDNS и использовал их функцию проверки кэша для принудительного обновления, просто чтобы убедиться, что изменения работают, но вы не можете гарантировать ] они обновятся для ваших пользователей в течение 48 часов.

DNS медленный зверь. Терпение будет держать вас в здравом уме.

11
ответ дан 10.09.2019, 17:30
  • 1
    +1 Я использую OpenDNS, так как очистить кеш очень полезно. – user207421 14.08.2010, 11:38
  • 2
    Я с подозрением отношусь к OpenDNS. Сначала я был счастлив, но потом я начал подозревать; хотя я думаю, если это выбор между ISP и OpenDNS, мне лучше с OpenDNS, верно? – erickson 16.08.2010, 10:23
  • 3
    Я бы сказал, OpenDNS - меньшее зло. Они хотели бы монетизировать ваш трафик, но только при неудачных попаданиях в домен. – user207421 16.08.2010, 12:35
  • 4
    @Oli ссылка снижается. При тихом использовании его, Вы могли бы обновить ссылки? – user207421 02.09.2019, 01:46

Если вы используете nscd:

sudo /etc/init.d/nscd restart

Стоит отметить, что это может быть не та ОС, которая его кеширует. Каждый любит кэшировать DNS ... Некоторые тесты:

Проверьте, является ли это новый или старый IP. Большинство браузеров также кэшируют DNS, поэтому, если вы еще не перезапустили Chromium или что-то еще, чего вы не видели в последних версиях.

ping yourdomain.com

Переключите свой локальный сервер имен в /etc/resolv.conf на другого провайдера, Google или уровень, примеры:

nameserver 8.8.8.8
nameserver 4.2.2.2

, а затем снова пингуйте.

Убедитесь, что ваш маршрутизатор не кэширует DNS в любой форме. (Зависит от роутера / прошивки / и т.д.)

Наконец, терпение. DNS может занять немного времени для распространения по Интернету.

7
ответ дан 10.09.2019, 17:30
  • 1
    При использовании NetworkManager и DHCP /etc/resolve.conf сбрасывается после истечения срока аренды DHCP, поэтому вам придется установить статический ip в NetworkManager, чтобы заставить его работать дольше. – pmartin8 14.08.2010, 11:53
  • 2
    +1 Я не знал, что Firefox кеширует DNS, это очень помогло. – Sagar Zala 23.12.2014, 06:57
  • 3
    +1 за переключение локального сервера имен в гугл сработало – FacePalm 05.01.2017, 19:37

Все ответы, приведенные выше, забыли одну важную вещь в разрешении имен: обычно DNS-серверы, для которых вы запрашиваете разрешение имен, не являются теми, которые содержат сами записи (авторитетный сервер). Поскольку каждая запись DNS имеет значение Time To Live, которое обязывает каждый DNS-сервер в цепочке разрешений выполнять кэширование в течение количества секунд, указанного в этом значении. Таким образом, вы можете не только кэшировать данные на своей машине, но, безусловно, результат поиска имени будет кэширован где-то на сервере, который вы не контролируете.

Единственное решение, которое должно быть немедленно уведомлено об изменении записи имени, - это использовать значение TTL 0 при создании / обновлении записи на полномочном сервере имен. Но это означает, что для каждого разрешения имени сервер будет работать, как правило, это не разрешено регистраторами. Например, они могут предоставить список предопределенных значений TTL, которые вы можете выбрать.

Я управляю разными доменными именами и, чтобы быть уверенным в том, что изменения хорошо применяются на авторитетных серверах имен, я использую инструмент под названием dnstracer, который может отображать результаты поиска на каждом сервере из корня DNS. [113 ]

В заключение, даже без какого-либо решения для кэширования DNS все равно будет задержка между моментом изменения записей DNS и изменением, которое будет видно на ПК. Эта задержка в значительной степени зависит от TTL записей и от количества DNS-серверов между вашим ПК и официальным сервером имен.

5
ответ дан 10.09.2019, 17:30

Для Ubuntu 14.04 я рекомендую эту команду:

sudo service dns-clean
2
ответ дан 10.09.2019, 17:30
  • 1
    Не на сервере по умолчанию устанавливает. Работает только 14.04 и ниже. – Jan Sršeň 01.09.2018, 02:58

Я также нашел противоречия, но это: https://superuser.com/a/521562 работа для меня (Ubuntu 13.10 с последними обновлениями, специальные сетевые пакеты не установлены).
Короче говоря, просто используйте это
sudo /etc/init.d/dns-clean

0
ответ дан 10.09.2019, 17:30

Я рекомендую openDNS специально для удаленных серверов Ubuntu, это облегчает боль ...

Как это сделать? Ну ...

cd /etc/dhcp
sudo nano dhclient.conf

вставить эту ДО строку «request subnet-mask ...»

supersede domain-name-servers 208.67.222.222,208.67.220.220;

, это перезапустит интерфейс так быстро, что вы даже не потеряете свой SSH-соединение

sudo ifdown eth0 && sudo ifup eth0

проверьте это, чтобы увидеть, правильно ли установлены ваши новые openDNS

cat /etc/resolv.conf
0
ответ дан 10.09.2019, 17:30
  • 1
    Это определенно не ответ на вопрос. – TmTron 08.11.2017, 21:33

Я использовал следующую команду для очистки dns-кеша на моем 12.10-ом Ubuntu-боксе, и это работало фантастически.

sudo kill -HUP $(pgrep dnsmasq)

Другим полезным сигналом является SIGUSR1, который выдает небольшую статистику в системный журнал или, как это указано в man dnsmasq:

В режиме --no-daemon или когда включено полное ведение журнала (-q), сделан полный дамп содержимого кэша.

1
ответ дан 10.09.2019, 17:30

В Ubuntu 16.04 я не смог очистить кеш, если не сделал:

1
ответ дан 10.09.2019, 17:30

Теги

Похожие вопросы