В этой статье покажу как изменить 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.