Flush DNS на Linux: SystemD-Resolved, NetworkManager и NSCD

Опубликовано: 2025-09-26

Когда ваша система Linux ведет себя странно при доступе к веб -сайтам - или разрешает неправильные домены - возможно, пришло время промыть кэш DNS. Как и кэш вашего браузера, кэш DNS сохраняет временные данные, которые помогают улучшить скорость просмотра веб -страниц и уменьшить задержку. Однако, когда этот кеш становится устаревшим или коррумпированным, он может привести к проблемам подключения. Это особенно важно в сценариях разработки или сетевого взаимодействия, где доменные имена часто меняются. В этой статье мы рассмотрим, как промыть кэш DNS в системах Linux, в которых используетсяSystemD-Resolved,NetworkManagerилиNSCD(DAEMON CACHE SERVICE).

Понимание кэширования DNS в Linux

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

В современных распределениях вы, скорее всего, столкнетесь с одной из следующих систем резолюра:

  • SystemD-Resolved: распространен в новых распределениях, таких как Ubuntu 18.04+ и Fedora.
  • NetworkManager: часто работает с SystemD-Resolved или другим бэкэнд.
  • NSCD(Демон Кэша Сервиса): найдено в некоторых традиционных системах Unix и Enterprise Linux.

Каждая из этих систем обрабатывает DNS кэширование по -разному, что означает, что метод промывки кэша также варьируется. Давайте подробно рассмотрим каждый.

Промывание DNS-кэша в SystemD-Resolved

SystemD-Resolved-это услуга, предоставляемаяSystemDдля управления запросами DNS и кэшированием. Это становится стандартом во многих основных распределениях Linux. Вы можете проверить, использует ли ваша система SystemD-разрешение путем работы:

 systemctl is-active systemd-resolved

Если он активен, продолжите промыть кэш DNS со следующей командой:

 sudo systemd-resolve --flush-caches

Чтобы подтвердить, что кэш был очищен, или просмотреть текущую статистику, вы можете использовать:

 systemd-resolve --statistics

Эта команда отображает метрики, такие как количество записей, хитов и промахов в кешах, помогая вам обеспечить успешное промывание кеша.

SystemD-резиновая конфигурация и отладка

Для продвинутых пользователей конфигурация службы находится в /etc/systemd/resolved.conf . Вы можете настраивать настройки, такие как DNS -серверы или запасное поведение. Если вы испытываете постоянные проблемы с DNS, рассмотрите возможность проверки журналов journalctl длясистемного разрешения:

 journalctl -u systemd-resolved

Это может быть невероятно полезно при устранении проблем с разрешением доменов, связанных с неправильной конфигурацией DNS или отравлением кешами.

Использование NetworkManager для обновления DNS

NetworkManager - это утилита, которая автоматически обрабатывает конфигурацию сети во многих распределениях Linux, включая настольные среды, такие как GNOME и KDE. Хотя сам NetworkManer не кэширует DNS, он часто определяет, какой сервис (например, SystemD-Resited) обрабатывает DNS.

Чтобы обновить настройки DNS с помощью NetworkManager, вы можете перезагрузить службу:

 sudo systemctl restart NetworkManager

Этот метод косвенно вызывает разрешение DNS, перезагружая соединения и связанные с ними услуги. Если вы хотите стать более гранулированным, вы также можете отключить и повторно определить конкретные сетевые интерфейсы. Например:

 nmcli networking off nmcli networking on

Или для конкретного устройства:

 nmcli device disconnect eth0 nmcli device connect eth0

Этот метод особенно полезен при переключении между сетями или решением проблем распространения доменов после изменений DNS.

Осмотр настроек DNS с помощью NMCLI

Если вы хотите проверить, какой DNS использует ваш сетевой менеджер, команда:

 nmcli dev show | grep DNS

Перечислит в настоящее время активные адреса DNS. Это полезно при проверке того, что настройки DNS из DHCP или статической адресации применяются правильно.

Промывание DNS с NSCD (Daemon Cache Service Cache)

Несмотря на то, что это реже в современных системах Linux настольных компьютеров,NSCDвсе еще используется в средах предприятия и устаревших. Он кэширует именем запросов службы, чтобы ускорить разрешение для имен хоста, паролей и других объектов базы данных. Во -первых, убедитесь, что он установлен и работает:

 sudo systemctl status nscd

Если он активен, промывание кеша DNS является простым:

 sudo nscd -i hosts

Эта команда сообщает NSCD аннулировать (-i) свои записи кэша для имен хост. Если вы хотите промыть все, а не только записи DNS, используйте:

 sudo nscd -I

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

Настройка и мониторинг NSCD

NSCD настроен через /etc/nscd.conf . Вы можете включить или отключить кэширование для различных типов данных, таких как:

  • Passwd
  • группа
  • хозяева

Файл хорошо компенсирован, что делает его разумно доступным. Мониторинг журналов с помощью journalctl -u nscd позволяет следить за его поведением и выявлять потенциальные проблемы.

Как определить, какой механизм кэширования вы используете

Не уверен, на какую систему опирается ваша машина Linux для кэширования DNS? Вот несколько быстрых проверок:

  • Возвращает ли значительный выход systemd-resolve --status ? Если да, ваша система, вероятно, использует SystemD-Resited.
  • Предоставляет ли nscd -g записи? Вы можете использоватьNSCD.
  • Работает ли resolvectl в вашей системе? Это хороший сигнал длясистемного разрешения.
  • Установлен dnsmasq или BIND ? Это указывает на более продвинутые настройки, требующие отдельных шагов.

Определение используемого DNS Resolver имеет решающее значение, прежде чем пытаться промыть или отладить кеш DNS, поскольку промывание неправильного кеша не решит вашу проблему.

Почему регулярно промывание DNS полезно

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

  • После изменения записей DNS:не придуманные кеши могут указывать на старые серверы IPS или DNS.
  • Устранение неполадок. Проблемы подключения:коррумпированные или отравленные кеш приводит к неудачным разрешениям.
  • Сценарии эпохи разработки:при тестировании доменной миграции или переключения между серверами постановки и производства.

Регулярное промывание кэша DNS помогает поддерживать здоровье системы и избегать неожиданных проблем с доступом к сайту, особенно для энергетических пользователей, системных администраторов и разработчиков.

Усовершенствованные советы и инструменты

Если вы работаете в сложной среде или нуждаетесь в большем контроле над разрешением DNS, вот несколько бонусных инструментов и советов:

  • DNSMASQ:действует как легкий экспедитор DNS с возможностями кэширования.
  • Bind (по имени):DNS-сервер корпоративного класса с настраиваемым кэшированием зоны и пользовательским истечением.
  • dig and nslookup :инструменты отладки для тестирования DNS-записей в реальном времени.
  • host :простой и прямой для запроса записей DNS без нарушения кэша.
Зачем менять ключевые связки в Survivalcraft 2?

Последние мысли

Промывание вашего DNS -кэша в Linux - это простая задача - как только вы знаете, какой инструмент или служба обрабатывает разрешение DNS в вашей системе. Независимо от того, используете ли выSystemD-Resolved,NetworkManagerилиNSCD, понимание того, как каждый работает, вооружит вас навыками для быстрого разрешения любого сценария устранения неполадок, связанных с DNS. Поддержание чистоты вашего кеша DNS - это не просто хорошая гигиена - это необходимо для надежного и точного разрешения доменных имен в сегодняшнем динамическом сетевом ландшафте.