Перейти к содержанию

Как изменить DNS-серверы в Linux (Ubuntu, Debian, CentOS)

Примечание

В инструкции используются публичные DNS от Cloudflare (1.1.1.1,1.0.0.1). Вы можете заменить их на любые другие — например Яндекс (77.88.8.8, 77.88.8.1).

Для IPv6 также доступны адреса:
- Yandex: 2a02:6b8::feed:0ff, 2a02:6b8:0:1::feed:0ff
- Cloudflare: 2606:4700:4700::1111, 2606:4700:4700::1001

Настройка IPv6-серверов не обязательна — только если ваш сервер использует IPv6.


Шаг 1. Проверьте текущие DNS-серверы

Подключитесь к серверу по SSH (или через веб-консоль) и выполните команду в зависимости от ОС:

ОС Команда
Ubuntu 20.04+, Debian 13 resolvectl status
Debian 12 cat /etc/resolv.conf
CentOS 9 nmcli device show ens1 | grep DNS

Примечание

Пример вывода для серверов Hostkey:

nameserver 8.8.8.8  
nameserver 8.8.4.4


Шаг 2. Изменение DNS-серверов

Выберите инструкцию для вашей операционной системы.


Ubuntu 20.04+ / Debian 13 (systemd-resolved)

  1. Откройте конфигурационный файл:

    sudo nano /etc/systemd/resolved.conf
    

  2. Раскомментируйте и заполните секцию [Resolve]. Пример:

[Resolve]
DNS=1.1.1.1 2606:4700:4700::1111
FallbackDNS=1.0.0.1 2606:4700:4700::1001
# Domains=~.
# Cache=yes
  1. Сохраните и перезапустите службу:

    sudo systemctl restart systemd-resolved
    

  2. Убедитесь, что служба активна:

    systemctl status systemd-resolved
    

  3. Проверьте настройки:

    resolvectl status
    

После этого /etc/resolv.conf будет симлинком на /run/systemd/resolve/stub-resolv.conf. Это нормально — не редактируйте его вручную.


Debian 12 (через dhclient)

  1. Откройте конфигурацию DHCP-клиента:

    sudo nano /etc/dhcp/dhclient.conf
    

  2. В конец файла добавьте строку:

    supersede domain-name-servers 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001;
    

  3. Перезапустите получение сетевых настроек:

    sudo dhclient -r && sudo dhclient
    

  4. Проверьте результат:

    cat /etc/resolv.conf
    


CentOS 9 (через nmcli)

  1. Определите активный сетевой интерфейс (обычно ens1):

    ip a
    

  2. Назначьте DNS-серверы:

    # IPv4
    sudo nmcli connection modify ens1 ipv4.dns "1.1.1.1,1.0.0.1"
    
    # IPv6 (опционально)
    sudo nmcli connection modify ens1 ipv6.dns "2606:4700:4700::1111,2606:4700:4700::1001"
    
    # Игнорировать DNS от DHCP (рекомендуется при фиксированных серверах)
    sudo nmcli connection modify ens1 ipv4.ignore-auto-dns yes
    

  3. Перезапустите соединение:

    sudo nmcli connection down ens1 && sudo nmcli connection up ens3
    

  4. Проверьте изменения:

    nmcli con show ens1 | grep -E "ipv4.dns|ipv6.dns"
    

Ожидаемый вывод:

ipv4.dns: 1.1.1.1,1.0.0.1
ipv6.dns: 2606:4700:4700::1111,2606:4700:4700::1001


Финальная проверка

Независимо от ОС, протестируйте работу DNS:

# Проверка резолва
nslookup cloudflare.com
dig ya.ru +short

# Проверка, какой именно сервер отвечает
nslookup - 1.1.1.1<<< "cloudflare.com"

Если ответы приходят быстро и без ошибок — настройка успешна.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×