В инструкции рассказываем, как изменить настройки 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-серверы используются сейчас. Это можно сделать, подключившись к серверу по 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-серверы, выполните следующее:
/etc/netplan
:cd /etc/netplan
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
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).
netplan try
На этом этапе, если в конфигурации сети были допущены какие-то ошибки, подключение по SSH будет разорвано. Конфигурация автоматически вернется к исходным настройкам через 2 минуты, и вы сможете снова подключиться к серверу.
В 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
.
Чтобы изменить DNS-серверы:
dhclient
в текстовом редакторе: nano /etc/dhcp/dhclient.conf
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
dhclient
cat /etc/resolv.conf
В выводе должны отобразиться указанные вами серверы.
Чтобы изменить DNS-серверы, выполните следующее:
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
.
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
PEERDNS=no
DNS1=8.8.8.8
DNS2=8.8.4.4
В CentOS 7:
service network restart
В CentOS 8,9:
service NetworkManager restart
cat /etc/resolv.conf
Если все корректно, в файле будут следующие строки:
# Generated by NetworkManager
search twc1.net
nameserver 8.8.8.8
nameserver 8.8.4.4