Если ты когда-нибудь пытался разобраться, почему браузер под Ubuntu тормозит на ровном месте, почти всегда виноват DNS. Да, та самая «телефонная книга Интернета», которая превращает доменные имена в IP-адреса. В теории все красиво — ты вводишь site.com, система ходит в сеть, находит IP, ты смотришь котиков. На практике — твой провайдер «обновляет» свои записи раз в месяц, и ты смотришь на белый экран с кружком загрузки.

Проблему решает простой трюк: поставить нормальные публичные DNS-серверы. Google, Cloudflare, OpenDNS — выбор за тобой.

  • Google (8.8.8.8, 8.8.4.4)
  • Cloudflare (1.1.1.1 и 1.0.0.1)
  • OpenDNS (208.67.222.222, 208.67.220.220)
  • Level3 (209.244.0.3, 209.244.0.4)

Но тут есть нюанс: Ubuntu 18.04 с systemd-resolved больше не любит, когда ты лезешь прямо в /etc/resolv.conf. Этот файл теперь — просто ссылочка, а всю магию делает systemd и Netplan.

Netplan вместо старого /etc/resolv.conf

Раньше было просто: открыл resolv.conf, поменял адреса, сохранил, забыл. Теперь файлы /etc/resolv.conf — символические ссылки, и трогать их руками — все равно что пытаться водить танк на скейтборде. Система просто перезапишет твои изменения через секунду.

Ubuntu 18.04 использует Netplan. Файлы лежат в /etc/netplan. Обычно это 01-netcfg.yaml или 50-cloud-init.yaml. Содержимое выглядит примерно так:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.199/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

Если хочешь поставить Cloudflare — меняешь addresses на [1.1.1.1, 1.0.0.1]. Никаких магических команд, просто редактируешь YAML, сохраняешь.

⚠️ Лови фишку: YAML не прощает табы и лишние пробелы. Сделал криво — Netplan ругнется, сеть не поднимется, и ты останешься без интернета. Вот тебе пример, как не надо:

nameservers: addresses: [1.1.1.1, 1.0.0.1] # Неправильно, сломает всё 

Правильная версия с отступами — выше.

Применяем изменения

После редактирования не ждешь, пока система сама догадается. Делаешь:

sudo netplan apply

Все, Netplan сгенерировал конфиги для systemd-resolved и теперь твоя Ubuntu реально знает, куда идти за сайтами.

Чтобы проверить, что DNS обновился, используй:

systemd-resolve --status | grep 'DNS Servers' -A2

И увидишь что-то вроде:

DNS Servers: 1.1.1.1
             1.0.0.1 

Если там по-прежнему IP провайдера — значит где-то напортачил в YAML.

Почему это важно

Прокачанные DNS-серверы — это не про «красивое число». Без нормального резолвера:

  • сайты грузятся по 10 секунд или зависают навечно;
  • старые записи провайдера ведут тебя на мертвые IP;
  • иногда вообще никакой интернет, потому что твоя система тупо ждет ответа, которого нет.

Настроил нормальные DNS — все летает, как должно. Забыл про это — месяц будешь гадать, почему WordPress тормозит.

Советы, чтобы не выстрелить себе в ногу

  • Не редактируй /etc/resolv.conf руками. Systemd-resolved любит его больше, чем тебя.
  • Следи за отступами в YAML. Любая ошибка — сеть падает, и привет, ночные звонки.
  • Проверяй DNS после apply. Если что-то не так — откат, иначе все сервисы начнут материться.
  • Используй быстрые публичные DNS. Cloudflare, Google, OpenDNS — они реально быстрее, чем твой провайдер.

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