Бесплатная миграция IT-инфраструктуры в облако
На главную
61c46507-12c7-4300-a301-bd8bc30c7c19
Инструкции для серверов

Изменение настроек DNS-серверов

В инструкции рассказываем, как изменить настройки DNS-серверов в операционных системах семейства Linux. Для сервера с ОС Windows воспользуйтесь этой статьей.

В инструкции ниже мы будем прописывать публичные DNS-серверы Google: 8.8.8.8 и 8.8.4.4, но вы можете указывать любые нужные вам DNS (например, DNS Cloudflare: 1.1.1.1 и 1.0.0.1 и др.).

Проверка текущих DNS

Перед тем, как менять настройки, вы можете просмотреть, какие DNS-серверы используются сейчас. Это можно сделать, подключившись к серверу по SSH (или через веб-консоль в панели управления) и далее выполнив команду для вашей операционной системы.

Ubuntu 18.04, 22.04:

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

Ubuntu 22.04:

resolvectl status

Debian и CentOS:

cat /etc/resolv.conf

В выводе будут указаны текущие DNS-серверы. Для серверов Timeweb Cloud, размещенных в Санкт-Петербурге, по умолчанию используются:

nameserver 92.53.116.13
nameserver 92.53.116.104

Изменение DNS-серверов

Ubuntu 18.04 и выше

Чтобы изменить DNS-серверы, выполните следующее:

  1. Подключитесь к серверу по SSH или через веб-консоль в панели управления.
  2. Перейдите в директорию /etc/netplan:
cd /etc/netplan
  1. Откройте файл конфигурации службы для редактирования. Файл, как правило, называется 01-netcfg.yaml; в Ubuntu 20.04 — 00-installer-config.yaml.
nano 01-netcfg.yaml

На серверах Timeweb Cloud его содержимое будет следующим: 

# This file describes the network interfaces available on your system  
# For more information, see netplan(5).  
network:  
 version: 2  
 renderer: networkd  
 ethernets:  
   ens3:  
     dhcp4: yes
  1. Добавьте в конец файла блок:
nameservers:
  addresses: [8.8.8.8, 8.8.4.4]

У вас должно получиться следующее:

# This file describes the network interfaces available on your system  
# For more information, see netplan(5).  
network:  
 version: 2  
 renderer: networkd  
 ethernets:  
   ens3:  
     dhcp4: yes  
     nameservers:  
       addresses: [8.8.8.8, 8.8.4.4]

Обязательно соблюдайте иерархичность структуры; каждый новый уровень директив должен начинаться с двух пробелов (не отступов Tab).

  1. Сохраните изменения в файле (Ctrl +X, затем Y и Enter).
  2. Примените новую конфигурацию командой:
netplan try 
  1. Программа запросит у вас подтверждение — нажмите Enter, чтобы применить новые настройки.

На этом этапе, если в конфигурации сети были допущены какие-то ошибки, подключение по SSH будет разорвано. Конфигурация автоматически вернется к исходным настройкам через 2 минуты, и вы сможете снова подключиться к серверу.

  1. Проверьте, что DNS-серверы обновились, с помощью команд:

В Ubuntu 18.04 и 20.04:

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

В Ubuntu 22.04:

resolvectl status

Если все было настроено корректно, в выводе будут отображены два новых сервера: 8.8.8.8, 8.8.4.4.

Debian 10 и выше

Чтобы изменить DNS-серверы:

  1. Подключитесь к серверу по SSH или через веб-консоль в панели управления.
  2. Откройте файл конфигурации dhclient в текстовом редакторе: 
nano /etc/dhcp/dhclient.conf
  1. В самый конец файла добавьте строку:
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
  1. Сохраните изменения в файле (Ctrl +X, затем Y и Enter).
  2. Запросите сетевые настройки командой:
dhclient
  1. Проверьте, что DNS обновились:
cat /etc/resolv.conf

В выводе должны отобразиться указанные вами серверы.

CentOS 7, 8, 9

Чтобы изменить DNS-серверы, выполните следующее:

  1. Подключитесь к серверу по SSH или через веб-консоль в панели управления.
  2. Выполните команду ниже, чтобы просмотреть сетевые адаптеры в системе:
ip a

В выводе отобразятся два адаптера: lo и eth0:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000  
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
   inet 127.0.0.1/8 scope host lo  
      valid_lft forever preferred_lft forever  
   inet6 ::1/128 scope host    
      valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000  
   link/ether 46:de:66:45:92:c4 brd ff:ff:ff:ff:ff:ff  
   inet 92.63.178.166/24 brd 92.63.178.255 scope global noprefixroute dynamic eth0  
      valid_lft 86082sec preferred_lft 86082sec  
   inet6 2a03:6f00:5:1::5cb2/64 scope global    
      valid_lft forever preferred_lft forever  
   inet6 fe80::44de:66ff:fe45:92c4/64 scope link noprefixroute    
      valid_lft forever preferred_lft forever

Нам нужно настроить адаптер eth0.

  1. Откройте его конфигурационный файл в редакторе:
nano /etc/sysconfig/network-scripts/ifcfg-eth0

Содержимое файла будет следующим:

# Created by cloud-init on instance boot automatically, do not edit.  
#  
BOOTPROTO=dhcp  
DEVICE=eth0  
HWADDR=6a:c2:41:b8:d7:bf  
ONBOOT=yes  
STARTMODE=auto  
TYPE=Ethernet  
USERCTL=no
  1. Добавьте в конец файла строки:
PEERDNS=no
DNS1=8.8.8.8
DNS2=8.8.4.4
  1. Сохраните изменения в файле (Ctrl +X, затем Y и Enter).
  2. Перезапустите службу, выполнив команду:

В CentOS 7:

service network restart

В CentOS 8,9:

service NetworkManager restart
  1. Проверьте, что изменения успешно применились:
cat /etc/resolv.conf 

Если все корректно, в файле будут следующие строки:

# Generated by NetworkManager  
search twc1.net  
nameserver 8.8.8.8  
nameserver 8.8.4.4

 

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев