Name or service not known является распространённой ошибкой доступа к публичным доменным именам, которая возникает после установки CentOS или любой другой операционной системы на базе Unix и свидетельствует о проблемах с доступностью вышестоящих DNS-серверов, вызванная некорректной настройкой сетевых интерфейсов.
Данная ошибка имеет следующий вид и возникает при запросе к публичным доменным именам:
[root@server ~]# ping google.com ping: google.com: Name or service not known
Однако, при попытке доступа к внешним ip-адресам, запросы выполняются корректно:
[root@server ~]# ping 216.58.213.78 PING 216.58.213.78 (216.58.213.78) 56(84) bytes of data. 64 bytes from 216.58.213.78: icmp_seq=1 ttl=114 time=4.08 ms 64 bytes from 216.58.213.78: icmp_seq=2 ttl=114 time=4.53 ms 64 bytes from 216.58.213.78: icmp_seq=3 ttl=114 time=4.10 ms --- 216.58.213.78 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 4.081/4.236/4.533/0.216 ms
Это свидетельствует о том, что у сервера есть проблемы с получением информации с вышестоящих DNS-серверов, в результате чего Вашему серверу не удаётся получить информацию о NS записях доменного имени (ip адрес сервера на котором он расположен).
В данной статье мы рассмотрим устранение данной ошибки в операционной системе CentOS, для чего нам понадобится внесение изменений в настройки основного сетевого интерфейса, через которых осуществляется доступ к сети.
Изменение настроек сетевого интерфейса в CentOS
Для устранения ошибки Name or service not known в операционной системе CentOS, необходимо внесение изменений в настройки сетевого интерфейса. Для этого нам понадобится сначала внести изменения в файл resolv.conf:
vi /etc/resolv.conf
И добавляем следующие параметры:
search google.com nameserver 8.8.8.8
Устанавливаем пакет net-tools, необходимый для получения информации о сетевых интерфейсах:
yum install net-tools -y
Узнаем имя основного сетевого интерфейса, выполняя команду ifconfig:
[root@server ~]# ifconfig ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 178.32.54.202 netmask 255.255.255.255 broadcast 0.0.0.0 inet6 fe80::3962:d017:266f:a4c4 prefixlen 64 scopeid 0x20<link> ether 02:00:00:53:8c:b9 txqueuelen 1000 (Ethernet) RX packets 10905905 bytes 1513437199 (1.4 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 601558 bytes 272644161 (260.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
В нашем случае имя основного интерфейса ens18. Нам необходимо внести изменения в его настройки. Для этого, открываем в редакторе файл конфигурации:
vi /etc/sysconfig/network-scripts/ifcfg-ens18
Добавляем в него следующую строку:
DNS1="8.8.8.8"
Перезагружаем сетевые службы:
systemctl restart NetworkManager.service
Проверяем доступ к внешним доменным именам, выполняя ping:
[root@server ~]# ping google.com PING google.com (142.250.201.174) 56(84) bytes of data. 64 bytes from par21s23-in-f14.1e100.net (142.250.201.174): icmp_seq=1 ttl=114 time=3.87 ms 64 bytes from par21s23-in-f14.1e100.net (142.250.201.174): icmp_seq=2 ttl=114 time=3.94 ms --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.871/3.904/3.937/0.033 ms
В результате внесенных изменений в настройки сетевых интерфейсов, ошибка устранена и можно продолжать работы с сервером.