В этой статье покажу как изменить dns сервера на сервера google и cloudflare на Ubuntu 22.04.


Предыстория

Недавно я столкнулся с проблемой тарификации всех dns запросов на виртуальной машине от провайдера yandex cloud.

Провайдер зашил в свой установочный образ ubuntu платный dns сервер.

В этой статье мы с вами заблокируем платный dns сервер от яндекса и пропишем публичные dns от google и cloudflare.


Шаг 1

Указываем публичные днс для нашего сетевого интерфейса eth0:

# Задаем DNS-серверы
sudo resolvectl dns eth0 8.8.8.8 1.1.1.1

# Устанавливаем домен для поиска
sudo resolvectl domain eth0 "~."

Шаг 2

Проверяем какой у нас dns сервер исспользуется по умолчанию

resolvectl status

Должны увидеть строчку Current DNS Server: ip

У меня по умолчанию стоял платный dns яндекса: 10.129.0.2 И в дополнительных у нас появились сервера которые мы прописали в шаге 1


Шаг 3

Блокируем доступ к серверу яндекс

Что бы наш сервер не мог польше пользоваться днс сервером от яндекс еще и платным, мы блокируем трафик через iptables

sudo iptables -A OUTPUT -p udp --dport 53 -d 10.129.0.2 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 53 -d 10.129.0.2 -j DROP

Вместо 10.129.0.2 вы подставляете ip адрес который у вас в Current DNS Server из шага 2


Шаг 4

Проверка dns

Выполним команду

nslookup google.com

Она должны выполниться без ошибок и показать нам ip адреса домена google.com

Выполняем команду resolvectl status еще раз для просмотра изменился ли наш сервер по умолчанию на сервер от google или cloudflare.