Интернет без DNS был бы как жизнь без памяти — всё вроде есть, но нужно каждый раз вспоминать, где и что. К счастью, есть Domain Name System , или просто DNS. Это как телефонный справочник для браузера: он переводит читаемые нами адреса (например, example.com) в IP-адреса, по которым уже можно достучаться до нужного сайта.
Чтобы ускорить доступ, система хранит небольшую "блокнотную" копию — DNS-кеш. Он запоминает адреса, которые вы уже открывали, чтобы в следующий раз не спрашивать заново. Но у этой системы есть ахиллесова пята, связанная с возможными проблемами безопасности, включая отравление кеша .
Когда DNS-кеш становится проблемой
DNS-кеш — штука удобная, но не вечная. Иногда он начинает чудить: сайты не открываются, страницы загружаются слишком долго, а другие устройства в сети работают как часы. Почему так?
Причин может быть много:
- Изменился IP-адрес сайта, а в кеше всё ещё старый
- У сайта несколько IP-адресов, и система путается
- В кеше оказались ошибочные или устаревшие записи
В итоге браузер смотрит в кеш, получает некорректный IP — и не может достучаться до сайта. Особенно это заметно на Linux, где сеть, казалось бы, стабильна, но работает хуже, чем на смартфоне через Wi-Fi. Что делать?
Волшебная команда: как сбросить DNS-кеш в Linux
Если у вас замедлилась скорость интернета на Linux-машине, а перезагрузка роутера не помогла (да-да, провайдер всегда советует начать с этого), попробуйте очистить DNS-кеш. Это безопасно, быстро и, в большинстве случаев, эффективно.
Вам понадобятся:
- Рабочий дистрибутив Linux
- Права администратора (sudo)
1. Откройте терминал
Можно использовать любой терминал. Главное — чтобы в нём работали команды.
2. Убедитесь, что используется systemd-resolved
Выполните команду:
systemctl is-active systemd-resolved
Если ответ — active, значит, у вас есть локальный DNS-кеш. Идём дальше. Стоит отметить, что systemd имела серьёзные проблемы с безопасностью, включая критическую уязвимость CVE-2017-9445 в systemd-resolved.
3. Посмотрите размер кеша
Проверьте, сколько записей в кеше:
resolvectl statistics
Ищите строку Current Cache Size. Если там десятки или сотни записей — кеш жив и работает.
4. Очистите кеш
Теперь время навести порядок:
resolvectl flush-caches
Команда выполнится без вывода. Но это нормально — просто значит, что всё прошло гладко.
5. Убедитесь, что кеш действительно пуст
Снова запустите:
resolvectl statistics
Теперь в строке Current Cache Size должно быть 0. Ура! Вы успешно сбросили DNS-кеш.
Что дальше?
Если интернет на Linux снова стал быстрым — поздравляем, дело было в кеше. Но если нет, возможно, проблема глубже: в маршрутизаторе, настройках DNS-сервера, или даже у самого провайдера. В таком случае стоит помнить о возможных уязвимостях DNS , которые могут влиять на работу сети.
В таком случае можно попробовать:
- Установить Cloudflare DNS (1.1.1.1) или Google DNS (8.8.8.8)
- Перезапустить сетевой сервис:
sudo systemctl restart NetworkManager
- Проверить настройки файла
/etc/resolv.conf
Также не забывайте, что на Android стоит держать Private DNS включённым. Он не только защищает от подмены DNS-запросов, но и помогает избежать лишней задержки.
Вместо итога
Очистка DNS-кеша — это как нажать кнопку "обновить" в мозге вашей сети. Просто, быстро, а иногда — спасительно. Так что если ваш Linux вдруг перестал "летать" по интернету, теперь вы знаете, с чего начать. Главное помнить о безопасности DNS и держать системы обновлёнными , чтобы избежать различных уязвимостей.