- Зачастую, в силу того, что информация в сети распространяется не мгновенно, привязанные к серверу домены начинают работать не сразу. Чтобы не тратить время впустую, ожидая обновления кеша DNS, желательно сразу проверить настройку вашего DNS-сервера и убедиться, что по истечении 72 часов (это максимальное время обновления глобального кеша DNS) ваш домен заработает.
Содержание
- 1 Первичная диагностика
- 1.1 Whois
- 1.2 dig +trace
- 1.3 dig с NS-серверов
- 1.4 dig с первичного сервера имен
- 2 Проблемы и решения
- 2.1 dig возвращает пустой ответ
- 2.1.1 Некорректные права/владелец
- 2.1.2 Отсутствие A-записей для дочерних NS
- 2.1.3 CNAME и другие записи
- 2.1.4 Отсутствие A-записи
- 2.1.5 Запрещены запросы к DNS-серверу
- 2.2 Connection timed out
- 2.3 Transfer failed
- 2.4 Отсутствие закрывающей точки
- 2.5 Список полезной литературы
- 2.1 dig возвращает пустой ответ
Первичная диагностика
Whois
Начать диагностику следует с запроса whois:
[root@dns ~]# whois firstvds.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). domain: FIRSTVDS.RU nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 94.250.248.160 state: REGISTERED, DELEGATED, VERIFIED org: CJSC "Pervyj" registrar: REGTIME-REG-RIPN admin-contact: http://whois.webnames.ru created: 2002.08.07 paid-till: 2014.08.08 free-date: 2014.09.08 source: TCI Last updated on 2014.03.18 03:36:35 MSK
В данном примере мы видим, что домен проделегирован на сервера имен ns1.firstvds.ru. и ns2.firstvds.ru. с указанием IP-адресов (дочерние NS-сервера всегда прописываются с указанием IP). Это корректный вывод whois и примерно так должен выглядеть ответ whois для зарегистрированного и проделегированного домена. Исключение составляет IP, он указывается только для дочерних NS-серверов.
Также следует обратить внимание на пункты «state» и «Status» (для доменов в зонах .com./.org): в поле «state» обязательно должны быть пометки REGISTERED и DELEGATED, в поле «Status» — «Ok». Для отсеивания всего лишнего из вывода whois можно использовать следующую команду:
[root@dns ~]# whois firstvds.ru | grep -Ei 'name server|nserver|state|status' nserver: ns1.firstvds.ru. 82.146.43.2 nserver: ns2.firstvds.ru. 94.250.248.160 state: REGISTERED, DELEGATED, VERIFIED
[root@dns ~]# whois ispserver.com | grep -Ei 'name server|nserver|state|status' Name Server: NS1.ISPVDS.COM Name Server: NS2.ISPVDS.COM Status: ok Domain Status: ok Name Server: NS1.ISPVDS.COM Name Server: NS2.ISPVDS.COM
Замечание: для доменов в зоне .com/.org следует обращать внимание только на первые две записи «Name Server».
Если домен не зарегистрирован или зарегистрирован недавно, можно увидеть такую картину:
[root@dns ~]# whois fvdstest.ru % By submitting a query to RIPN's Whois Service % you agree to abide by the following terms of use: % http://www.ripn.net/about/servpol.html#3.2 (in Russian) % http://www.ripn.net/about/en/servpol.html#3.2 (in English). No entries found for the selected source(s). Last updated on 2014.03.18 03:46:37 MSK
Информация во whois может обновляться в течение трех часов, поэтому если вы уже приобрели домен, нужно некоторое время подождать. Это также касается смены NS-серверов домена.
dig +trace
dig — утилита, предоставляющая пользователю интерфейс командной строки для отправки запросов к DNS-серверам. Первый запрос, который нас интересует, — трассировка запросов к домену:
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 10045 IN NS l.root-servers.net. . 10045 IN NS h.root-servers.net. . 10045 IN NS a.root-servers.net. . 10045 IN NS i.root-servers.net. . 10045 IN NS g.root-servers.net. . 10045 IN NS d.root-servers.net. . 10045 IN NS j.root-servers.net. . 10045 IN NS m.root-servers.net. . 10045 IN NS c.root-servers.net. . 10045 IN NS b.root-servers.net. . 10045 IN NS e.root-servers.net. . 10045 IN NS f.root-servers.net. . 10045 IN NS k.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2311 ms ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS a.dns.ripn.net. ;; Received 341 bytes from 192.36.148.17#53(192.36.148.17) in 934 ms firstvds.ru. 345600 IN NS ns1.firstvds.ru. firstvds.ru. 345600 IN NS ns2.firstvds.ru. ;; Received 97 bytes from 193.232.156.17#53(193.232.156.17) in 548 ms firstvds.ru. 3600 IN A 195.211.221.106 ;; Received 45 bytes from 94.250.248.160#53(94.250.248.160) in 71 ms
Здесь мы видим, что сперва были опрошены корневые сервера имен, которые направили запрос на сервера зоны .ru, которые, в свою очередь, отправили его на сервера, отвечающие за зону firstvds.ru, и с них был получен IP-адрес домена. Тут могут быть различные варианты, например:
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 10045 IN NS l.root-servers.net. . 10045 IN NS h.root-servers.net. . 10045 IN NS a.root-servers.net. . 10045 IN NS i.root-servers.net. . 10045 IN NS g.root-servers.net. . 10045 IN NS d.root-servers.net. . 10045 IN NS j.root-servers.net. . 10045 IN NS m.root-servers.net. . 10045 IN NS c.root-servers.net. . 10045 IN NS b.root-servers.net. . 10045 IN NS e.root-servers.net. . 10045 IN NS f.root-servers.net. . 10045 IN NS k.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2311 ms ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS a.dns.ripn.net. ;; Received 341 bytes from 192.36.148.17#53(192.36.148.17) in 934 ms firstvds.ru. 345600 IN NS ns1.oldfirstvds.ru. firstvds.ru. 345600 IN NS ns2.oldfirstvds.ru. ;; Received 97 bytes from 193.232.156.17#53(193.232.156.17) in 548 ms firstvds.ru. 3600 IN A 188.120.252.3 ;; Received 45 bytes from 94.250.248.160#53(94.250.248.160) in 71 ms
Здесь мы видим несоответствие NS-серверов, на которые проделегирован домен, и тех, на которые указывают сервера зоны .ru (ns1.oldfirstvds.ru. и ns2.oldfirstvds.ru.).
Еще вариант:
[root@dns ~]# dig firstvds.ru +trace ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru +trace ;; global options: +cmd . 9554 IN NS i.root-servers.net. . 9554 IN NS b.root-servers.net. . 9554 IN NS c.root-servers.net. . 9554 IN NS k.root-servers.net. . 9554 IN NS e.root-servers.net. . 9554 IN NS h.root-servers.net. . 9554 IN NS d.root-servers.net. . 9554 IN NS f.root-servers.net. . 9554 IN NS l.root-servers.net. . 9554 IN NS g.root-servers.net. . 9554 IN NS m.root-servers.net. . 9554 IN NS j.root-servers.net. . 9554 IN NS a.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 2399 ms ru. 172800 IN NS a.dns.ripn.net. ru. 172800 IN NS b.dns.ripn.net. ru. 172800 IN NS d.dns.ripn.net. ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS f.dns.ripn.net. ;; Received 341 bytes from 128.63.2.53#53(128.63.2.53) in 1061 ms ru. 3600 IN SOA a.dns.ripn.net. hostmaster.ripn.net. 4021899 86400 14400 2592000 3600 ;; Received 90 bytes from 193.232.128.6#53(193.232.128.6) in 78 ms
Сервера зоны .ru ничего не знают об NS-серверах, обслуживающих зону запрашиваемого домена. Последние два случая могут быть обусловлены как проблемами в работе DNS, так и тем, что информация о домене еще не обновилась на корневых серверах имен, поэтому потребуется дальнейшая диагностика.
dig с NS-серверов
В этом случае мы запрашиваем информацию напрямую с NS-серверов, которые планируется использовать для указанного домена. Пример для запроса с ns1 (для ns2 запрос выглядит аналогично):
[root@dns ~]# dig firstvds.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru @ns1.firstvds.ru. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39440 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 195.211.221.106 ;; Query time: 67 msec ;; SERVER: 82.146.43.2#53(82.146.43.2) ;; WHEN: Tue Mar 18 09:30:41 2014 ;; MSG SIZE rcvd: 45
Здесь в секции ANSWER SECTION был возвращен IP, в который NS-сервер резолвит домен, при нормальной работе этот IP должны возвращать оба NS-сервера, если IP отличается от того, что вы назначили домену на основном сервере, то зона нуждается в обновлении. В ISPmanager, к примеру, это можно сделать кнопкой «Передать» в разделе «Доменные имена», если же у вас DNS-сервер настроен без использования панели, то зона, как правило, будет обновлена самостоятельно, либо по истечении TTL зоны, либо по запросу вторичного сервера имен, если используется механизм уведомлений (опция notify yes в BIND).
Также NS-сервер может вообще не ответить:
[root@dns ~]# dig fvdstest.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> firstvds.ru @ns1.firstvds.ru ;; global options: +cmd ;; connection timed out; no servers could be reached
В этом случае следует убедиться, что внешний DNS-сервер доступен и на нем не заблокирован 53-й порт (если есть такая возможность).
Еще один вариант — пустой ответ:
[root@dns ~]# dig fvdstest.ru @ns1.firstvds.ru. ; <<>> DiG 9.8.1-P1 <<>> fvdstest.ru @ns1.firstvds.ru. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35308 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;fvdstest.ru. IN A ;; Query time: 123 msec ;; SERVER: 82.146.43.2#53(82.146.43.2) ;; WHEN: Tue Mar 18 09:41:57 2014 ;; MSG SIZE rcvd: 29
Также при возникновении каких-либо проблем на NS-серверах следует произвести диагностику первичного DNS-сервера.
dig с первичного сервера имен
Служит для запроса информации непосредственно с сервера, на котором создан домен:
[root@dns ~]# dig firstvds.ru @188.120.241.90 ; <<>> DiG 9.7.1-P2 <<>> firstvds.ru @188.120.241.90 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26391 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;firstvds.ru. IN A ;; ANSWER SECTION: firstvds.ru. 3600 IN A 188.120.241.90 ;; AUTHORITY SECTION: firstvds.ru. 3600 IN NS ns1.firstvds.ru. firstvds.ru. 3600 IN NS ns2.firstvds.ru. ;; ADDITIONAL SECTION: ns1.firstvds.ru. 3600 IN A 82.146.43.2 ns2.firstvds.ru. 3600 IN A 82.146.35.143 ;; Query time: 71 msec ;; SERVER: 188.120.241.90#53(188.120.241.90) ;; WHEN: Thu Apr 14 15:12:51 2011 ;; MSG SIZE rcvd: 113
Приведенный вариант — то, как должен отвечать правильно настроенный DNS-сервер, в случае возникновения проблем следует перейти к более детальному изучению обстановки на корневом сервере имен.
Проблемы и решения
Вся необходимая для диагностики информация о проблемах, возникшим в работе первичного сервера имен, содержится в логах. По умолчанию DNS-сервер пишет в системный лог /var/log/messages, однако в конфигурации может быть задано ведение логов в отдельном файле, поэтому следует свериться с конфигурацией вашего DNS-сервера. В этом разделе рассмотрены наиболее часто встречающиеся в логах ошибки.
dig возвращает пустой ответ
Пустой ответ означает то, что на VDS либо отсутствует файл зоны этого домена, либо то, что при подгрузке файла зоны возникли проблемы. Также причиной может быть отсутствие A-записи в файле зоны. Если в первом случае достаточно будет создать домен на сервере (через ISPmanager или с помощью ручной правки файла зоны, если ISPmanager отсутствует), то во втором потребуется изучить логи DNS-сервера.
Некорректные права/владелец
Первая ошибка, которую мы рассмотрим — permission denied:
Mar 17 05:53:58 fvds named[19765]: zone fvdstest.com/IN: loading from master file /etc/bind/fvdstest.com failed: permission denied Mar 17 05:53:58 fvds named[19765]: zone fvdstest.com/IN: not loaded due to errors.
Ошибка говорит о некорректных правах на файл зоны или о некорректном владельце файла:
[root@dns ~]# ls -l /etc/bind/fvdstest.com -rw-r----- 1 root root 444 Mar 17 05:50 /etc/bind/fvdstest.com
В данном случае проблема именно с владельцем, им должен быть пользователь, от которого запущен bind:
[root@dns ~]# ls -l /etc/bind/fvdstest.com -rw-r----- 1 bind bind 444 Mar 17 05:50 /etc/bind/fvdstest.com
Также следует обратить внимание на права и группу самой директории /etc/bind/:
[root@dns ~]# ls -ld /etc/bind/ drwxr-sr-x 2 root bind 4096 Mar 15 18:42 /etc/bind
Отсутствие A-записей для дочерних NS
Следующая ошибка в логе:
Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: NS 'ns1.fvdstest.com' has no address records (A or AAAA) Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: NS 'ns2.fvdstest.com' has no address records (A or AAAA) Mar 17 05:56:55 fvds named[19933]: zone fvdstest.com/IN: not loaded due to errors.
Проблема в том, что в NS-записях указаны дочерние домены третьего уровня, для которых отсутствует A-запись: ‘ns1.fvdstest.com’ и ‘ns2.fvdstest.com’, соответственно, нужно либо указать другие, уже настроенные на другом домене, NS-сервера, либо прописать соответствующие A-записи:
ns1 IN A 10.10.10.10 ns2 IN A 11.11.11.11
CNAME и другие записи
Еще одна достаточно распространенная ошибка:
Mar 17 06:08:39 fvds named[20701]: zone fvdstest.com/IN: loading from master file /etc/bind/fvdstest.com failed: CNAME and other data Mar 17 06:08:39 fvds named[20701]: zone fvdstest.com/IN: not loaded due to errors.
Записи A и CNAME не могут одновременно сосуществовать для одного домена/поддомена:
test.fvdstest.com. IN A 10.10.10.10 test.fvdstest.com. IN CNAME google.com
После устранения всех ошибок в логе должна появиться следующая запись:
Mar 17 06:13:12 fvds named[20914]: zone fvdstest.com/IN: loaded serial 2014022800
Однако, даже после этого мы можем получить пустой ответ на запрос утилитой dig. Тут вариантов не так много:
Отсутствие A-записи
По умолчанию утилита dig запрашивает именно A-запись домена, поэтому пустой ответ может означать, что эта запись отсутствует. Пример A-записи:
fvdstest.com. IN A 10.10.10.10
Тут стоит отметить, что в некоторых случаях необходимости в A-записи нет, и чтобы проверить, как отдается та или иная запись, нужно сообщить утилите dig тип запрашиваемой записи:
[root@dns ~]# dig fvdstest.com @188.120.234.14 MX ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> fvdstest.com @10.10.10.10 MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47888 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;fvdstest.com. IN MX ;; ANSWER SECTION: fvdstest.com. 3600 IN MX 10 mail.fvdstest.com. fvdstest.com. 3600 IN MX 20 mail.fvdstest.com. ;; AUTHORITY SECTION: fvdstest.com. 3600 IN NS ns2.fvdstest.com. fvdstest.com. 3600 IN NS ns1.fvdstest.com. ;; ADDITIONAL SECTION: mail.fvdstest.com. 3600 IN A 123.123.123.123 ns1.fvdstest.com. 3600 IN A 10.10.10.10 ns2.fvdstest.com. 3600 IN A 11.11.11.11 ;; Query time: 1 msec ;; SERVER: 188.120.234.14#53(188.120.234.14) ;; WHEN: Mon Mar 17 08:30:16 2014 ;; MSG SIZE rcvd: 151
Замечание: для получения всех записей можно указать тип ANY, также полезным будет ключ +short, позволяющий выводить сокращенный ответ:
[root@dns ~]# dig fvdstest.com @10.10.10.10 +short ANY "v=spf1 ip4:123.123.123.123 a mx ~all" fvds.com. root.fvds.com. 2014022800 10800 3600 604800 86400 ns1.fvdstest.com. ns2.fvdstest.com. 20 mail.fvdstest.com. 10 mail.fvdstest.com. 123.123.123.123
Запрещены запросы к DNS-серверу
В конфигурации DNS-сервера могут быть разрешены запросы только с определенных адресов (как правило, разрешаются запросы только со slave-сервера). В случае с DNS-сервером BIND это директива allow-query{}. В этом случае мы увидим в логе следующую запись:
Mar 17 06:29:22 fvds named[21971]: client 188.120.234.14#49834: query 'fvdstest.com/A/IN' denied
Вариантов диагностики в этом случае два: либо временно добавить свой адрес в список разрешенных, либо делать запросы непосредственно с сервера, на котором расположен slave. Если slave настроен так, чтобы делать запросы не с основного IP на интерфейсе, утилите dig нужно будет указать ключ «-b xxx.xxx.xxx.xxx», где xxx.xxx.xxx.xxx – IP на интерфейсе, с которого разрешены запросы к master:
[root@dns ~]# dig fvdstest.com @188.120.234.14 +short -b 188.120.234.14 ANY "v=spf1 ip4:123.123.123.123 a mx ~all" fvds.com. root.fvds.com. 2014022800 10800 3600 604800 86400 ns1.fvdstest.com. ns2.fvdstest.com. 20 mail.fvdstest.com. 10 mail.fvdstest.com. 123.123.123.123
Connection timed out
[root@dns ~]# dig fvdstest.com ; <<>> DiG 9.7.1-P2 <<>> fvdstest.com @10.10.10.10 ;; global options: +cmd ;; connection timed out; no servers could be reached
Данный вывод говорит о том, что на сервере, с которого производится запрос информации о доменном имени, возникли проблемы. Это может быть как неработающий named, так и блокировка 53 порта с помощью файрвола.
Transfer failed
[root@dns ~]# dig fvdstest.com @10.10.10.10 AXFR ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> fvdstest.com @10.10.10.10 AXFR ;; global options: +cmd ; Transfer failed.
Mar 17 07:18:51 fvds named[23074]: client 188.120.234.14#50652: zone transfer 'fvdstest.com/AXFR/IN' denied
Эта ошибка говорит о том, что в конфигурации DNS-сервера запрещен трансфер зоны на адрес, с которого пришел запрос (директива allow-transfer{} в BIND). В плане диагностики проблема идентична ситуации с ограничением на запросы.
Отсутствие закрывающей точки
Иногда в ответе dig можно наблюдать такую картину
[root@dns ~]# ; <<>> DiG 9.7.1-P2 <<>> <domain> @<IP-адрес VDS> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1253 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;<domain>. IN A ;; ANSWER SECTION: <domain>. 3600 IN A 123.123.123.123 ;; AUTHORITY SECTION: <domain>. 3600 IN NS ns2.firstvds.ru.<domain>. <domain>. 3600 IN NS ns1.firstvds.ru.<domain>. ;; Query time: 70 msec ;; SERVER: 92.63.103.212#53(92.63.103.212) ;; WHEN: Fri Apr 15 15:49:16 2011 ;; MSG SIZE rcvd: 97
Проблема заключается в том, что при создании доменного имени были указаны некорректные сервера имен. Конкретно в данном случае пропущена закрывающаяся точка в доменном имени ns1.firstvds.ru.
При загрузке сайта initial connection очень большой, 20 секунд. После этой загрузки все страницы грузятся моментально. Грешу на DNS, использую vps от reg.ru. Как проверить конкретно DNS на ошибки? Я так понимаю проблема с тем, что dns меняет ip на доменное имя, поэтому грузится долго
-
Вопрос заданболее трёх лет назад
-
3652 просмотра
В общем, решение оказалось проще некуда, поставил dns сервера для vps серверов от reg.ru …
Пригласить эксперта
Проверка резолвинга имени от DNS серверов маршрутизатора:
nslookup example.com
Проверка по DNS серверу от Гугла:
nslookup example.com 8.8.8.8
Есть разница?
А теперь проверить как работает связь до сервера сайта:
tracert example.com
-
Показать ещё
Загружается…
12 июн. 2023, в 19:14
25000 руб./за проект
12 июн. 2023, в 18:45
15000 руб./за проект
12 июн. 2023, в 18:41
20000 руб./за проект
Минуточку внимания
Одной из самых частых ошибок связанных с подключением к интернету в Windows, является ошибка: «DNS-сервер не отвечает». При этом, пропадает доступ к интернету. На значке подключения скорее всего будет желтый треугольник, а в браузере, при попытке открыть сайт, вы скорее всего увидите ошибку «Не удается найти DNS-адрес», «err name not resolved «, или что-то в этом роде. Проблема эта вызвана сбоем в работе DNS-сервера, который отвечает за перенаправленные IP-адреса на домен. Если говорить о причинах возникновения этой ошибки, то виновником может быть как сам компьютер, так и маршрутизатор, или оборудование на стороне провайдера.
Сама ошибка «DNS-сервер не отвечает» появляется в результате диагностики сетей Windows. Запустить диагностику очень просто. Достаточно нажать правой кнопкой мыши на значок подключения к интернету, и выбрать «Диагностика неполадок».
Иногда, может появляться ошибка: «Параметры компьютера настроены правильно, но устройство или ресурс (DNS-сервер) не отвечает».
Вот такие ошибки. Если вы не знаете что делать, то сейчас мы рассмотрим несколько эффективных советов, которые должны помочь избавится от данных ошибок. В итоге, интернет на вашем компьютере заработает, и сайты начнут открываться. Решения будут одинаковыми для Windows 10, Windows 8, и Windows 7.
Обновление: для Windows 11 я подготовил отдельную статью: ошибка DNS-сервер не отвечает в Windows 11.
Как исправить ошибку «DNS-сервер не отвечает»?
Для начала, я советую выполнить несколько простых решений. Есть шанс, что они помогут, и вам не придется разбираться с более сложными настройками.
- Если у вас интернет подключен через роутер, или модем (по Wi-Fi, или по кабелю), и вы наблюдаете ошибку «DNS-сервер не отвечает», то попробуйте просто перезагрузить роутер. Отключите питание роутера где-то на минуту, и включите обратно. Не важно какой у вас роутер, TP-Link, D-link, ASUS, или еще какой-то.
- Перезагрузите свой компьютер, или ноутбук. В данном случае не важно, интернет у вас идет через роутер, или кабелем напрямую от провайдера. Просто выполните перезагрузку.
- Если интернет подключен через роутер, то проверьте, работает ли интернет на других устройствах. Нет ли там ошибки с ответом DNS-сервера.
- При подключении через маршрутизатор, если есть возможность, можно подключить интернет напрямую к компьютеру. Для проверки.
- Постарайтесь вспомнить, после чего появилась ошибка DNS, и проблемы с доступом к интернету. Может после смены каких-то настроек, или установки программ.
Если эти советы не помогли, то попробуйте применить решения, о которых я напишу ниже.
Проверяем службу DNS-клиент
Прежде чем что-то менять, я рекомендую посмотреть, работает ли служба «DNS-клиент». Нажмите на клавиатуре сочетание клавиш Win + R. В появившемся окне введите команду services.msc, и нажмите Ok.
В новом окне ищем службу «DNS-клиент», нажимаем на нее правой кнопкой мыши, и выбираем «Свойства».
Тип запуска должен быть «Автоматически». И если у вас кнопка «Запустить» будет активной, то нажмите на нее. Дальше: «Применить» и «Ok».
Если служба у вас была отключена, и вы ее включили, то после перезагрузки компьютера интернет должен заработать.
Меняем настройки DNS-серверов в свойствах подключения
Дальше мы проверим настройки DNS-серверов в свойствах подключения, через которое компьютер подключен к интернету. Если там прописаны какие-то адреса, то можно попробовать выставить автоматическое получение, либо прописать DNS-адреса от Google. Этот способ очень часто позволяет избавится от ошибки «DNS-сервер не отвечает».
Нам нужно открыть окно со всеми подключениями. Для этого можно нажать правой кнопкой мыши на значок подключения к интернету, и выбрать «Центр управления сетями…». Дальше переходим в «Изменение параметров адаптера».
Дальше правой кнопкой мыши нажимаем на то подключение, через которое вы подключены к интернету (к роутеру), и выбираем «Свойства». Если подключение по Wi-Fi, то это подключение «Беспроводная сеть», если по кабелю, то «Ethernet» (Подключение по локальной сети).
У меня, например, проблема с DNS при подключении по Wi-Fi сети через роутер.
В новом окне выделите «IP версии 4 (TCP/IPv4)», и нажмите «Свойства». Если в новом окне у вас прописан какой-то DNS-сервер, то можно попробовать выставить автоматическое получение адресов, и проверить подключение к интернету после перезагрузки компьютера.
Но чаще всего помогает следующее: ставим переключатель возле «Использовать следующие адреса DNS-серверов», и прописываем DNS от Google:
8.8.8.8
8.8.4.4
Нажимаем «Ok» и перезагружаем компьютер.
Такое решение помогает очень часто. Если у вас проблема с получение DNS на всех устройствах, которые подключены через один роутер, то эти адреса можно прописать в настройках роутера, тогда они будут применяться для всех устройств. Как правило, сделать это можно в настройках вашего роутера, в разделе «Интернет», или «WAN». Где задаются параметры для подключения к провайдеру.
Для примера, покажу как это сделать на роутере TP-Link:
Не забудьте сохранить настройки.
Очищаем кэш DNS и другие сетевые параметры
Нужно просто запустить командную строку, и по очереди выполнить несколько команд, которые выполнять очистку кэша DNS-адресов, и других сетевых настроек. Этот способ подойдет как для Windows 10, так и для Windows 7 (8).
Командную строку нужно запустить от имени администратора. Если у вас Windows 10, то просто нажмите правой кнопкой мыши на меню пуск, и выберите «Командная строка (администратор)». В Windows 7, в поиске можно набрать «cmd», нажать правой кнопкой на «cmd» в результатах поиска, и выбрать «Запустить от имени администратора».
По очереди копируем и выполняем такие команды:
ipconfig /flushdns
ipconfig /registerdns
ipconfig /renew
ipconfig /release
Вот так:
В Windows 10 можно еще попробовать выполнить сброс сетевых настроек. Это практически то же самое.
После этого перезагрузите компьютер.
Обновление: отключаем или удаляем антивирус Avast
В комментариях Сергей написал, что ему помогло только удаление антивируса Avast. Если у вас установлен именно этот антивирус, то возможно он стал причиной того, что DNS-сервер перестал отвечать.
По своему опыту могу сказать, что антивирус Avast очень часто вмешивается в сетевые настройки Windows, из-за чего появляются разные проблемы с подключением к интернету. То интернет перестает работать после удаления антивируса, то ошибка DNS, или сетевой адаптер не имеет допустимых параметров настройки IP.
Можно попробовать для начала полностью остановить работу антивируса. Если это не решит проблему, то удалить его. Можно переустановить его, только без дополнительных модулей. Как это сделать, я писал в статье по ссылке выше (о решении проблемы с параметрами IP).
Что делать, если не получилось исправить ошибку?
Если вы все проделали правильно, но Windows по прежнему пишет что DNS-сервер не отвечает, то у меня есть еще пару советов:
- Смените статус сети с общественной на частную. У нас на сайте есть подробная инструкция.
- Попробуйте на время полностью отключить антивирус, или встроенный в него брандмауэр (веб-антивирус, сетевой экран).
- Если никак не можете исправить эту ошибку, то позвоните в поддержку своего интернет-провайдера. Не редко проблемы с DNS бывают по их вине.
Обязательно напишите, если у вас получилось избавится от этой ошибки. Напишите какой способ помог. Может у вас сработало какое-то другое решение, которого нет в статье. Ну и оставляйте свои отзывы в комментариях.
DNS-сервер фактически является приложением, которое работает на отдельном физическом сервере или совместно с другими серверами и обрабатывает все запросы, содержащие доменные имена.
Как только вы зарегистрировали доменное имя, оно начинает обслуживаться DNS-сервером, и любое обращение к домену по имени проходит через него. С момента привязки доменного имени к DNS-серверу может пройти до 72 часов, чтобы домен начал работать. Если по истечении этого срока домен не заработал или возникла ситуация, когда работающий домен перестал отвечать на запросы, проведите быструю диагностику DNS.
С чего начать?
Используйте утилиту whois для первичной диагностики DNS. Актуально для Linux-систем.
Выполните команду:
whois ispserver.ru
В примере показан корректный вывод ответа на whois, который в большинстве случаев должен быть именно таким.
Whois выводит информацию о домене, в данном примере — ispserver.ru. Серверы имен, которые обслуживают домен — ns1.ispvds.com, ns2.ispvds.com — это первичный и вторичный DNS-серверы. На ns1.ispvds.com вносятся изменения зоны ispserver.ru, ns2.ispvds.com периодически синхронизирует свои записи с первичным DNS-сервером. В случае дочерних DNS-серверов (расположенных на самом делегируемом домене) в выводе whois рядом с именем сервера имен указывается его IP-адрес.
Строка с меткой “state:” обозначает статус, в котором находится домен. REGISTERED и DELEGATED в этой строке указывают на то, что домен зарегистрирован и делегирован.
Для получения краткой информации о домене используйте команду whois с параметрами:
whois ispserver.ru | grep -Ei 'name server|nserver|state'
Если домен не зарегистрирован (такого домена не существует), то ответ на whois будет следующим:
Используйте утилиту dig для обращения из командной строки к серверу DNS. Выполните трассировку маршрута пакетов к DNS-серверу командой:
dig ispserver.ru +trace
Первые 13 строк, начинающиеся со знака “.”, обозначают, что сначала были опрошены серверы имен корневой зоны, затем было сделано перенаправление на зону .ru (строки, начинающиеся с “.ru”), а затем запрос был отправлен на серверы имен домена ispserver.ru — ns1.ispvds.com, ns2.ispvds.com. Предпоследняя строка указывает на то, что серверы имен передали IP-адрес домена ispserver.ru в ответ на запрос.
Если при трассировке на каком-то шаге передача запроса происходит не на нужный DNS-сервер (например, серверы зоны .ru не перенаправляют пакет на серверы ns1.ispvds.com, ns2.ispvds.com), это означает, что информация о домене либо еще не обновилась, либо появились какие-то проблемы при работе DNS-сервера.
Опросите конкретный DNS-сервер, обслуживающий ваш домен, командой
dig ispserver.ru ns1.ispvds.ru
Секция ANSWER SECTION содержит IP-адрес, возвращенный DNS-сервером. Этот IP должен совпадать с тем, который вы назначали домену. Если он отличается, обновите доменную зону или подождите, пока она обновится автоматически. Все DNS-серверы должны возвращать один и тот же IP-адрес для домена.
Ошибка “Connection timed out”
Если в ответ на команду dig вы получаете сообщение “Connection timed out”, это означает, что DNS-сервер не отвечает.
Проверьте, доступен ли DNS-сервер и открыт ли на нем 53 порт.
Опросите первичный сервер имен командой
dig ispserver.ru <IP-адрес> где IP-адрес - IP сервера, на котором расположен домен.
При правильной работе DNS должен выводиться корректный IP-адрес домена.
Решение основных проблем с DNS
Описание всех возникших проблем DNS-сервера читайте в лог-файле DNS, который по умолчанию находится по следующему пути: /var/log/messages. Расположение может быть изменено в зависимости от настроек вашего сервера. Через ISPmanager лог-файл можно просмотреть через “Менеджер файлов”.
Далее описаны наиболее часто возникающие проблемы DNS, которые можно обнаружить командой dig или в лог-файле.
Пустой ответ на команду dig
Под пустым ответом на команду dig понимается отсутствие секции ANSWER в выводе.
Как правило, причинами такого ответа могут быть:
- не существует такого доменного имени;
- домен не зарегистрирован на VPS;
- не создана А-запись для домена.
Проверьте, зарегистрирован ли домен на сервере. Зайдите в ISPmanager в раздел “Сайты” и убедитесь, что в списке существует запись вашего доменного имени. В данном примере это isptest.com, которого в списке нет. Нажмите на кнопку “Создать сайт” и создайте новый сайт.
Если у вас нет панели управления ISPmanager, проверьте, есть ли файл зоны домена, вручную.
Удостоверьтесь, что на сервере для вашего домена корректно созданы А-записи. Зайдите в ISPmanager в раздел “Управление DNS”. Выделите домен и нажмите кнопку “Управлять DNS записями”.
Среди ресурсных записей найдите А-запись и удостоверьтесь, что каждая запись содержит значение IP-адрес сервера, на котором расположен домен. В обратном случае исправьте несоответствия или создайте записи заново.
Если вы не используете панель управления ISPmanager, выполните проверки вручную на сервере. Пример А-записи в конфигурационном файле named.conf:
ispserver.com. IN A 10.10.10.10
Ошибка “Permission denied”
Следующая запись лог-файле DNS означает, что были неправильно назначены права на файл зоны или владелец файла /etc/bind/ispsrv.com
Oct 12 15:23:50 ispsrv named[18761]: zone ispsrv.ru/IN: loading from master file /etc/bind/ispsrv.com failed: permission denied Oct 12 15:23:50 ispsrv named[18761]: zone ispsrv.ru/IN: not loaded due to errors.
Удостоверьтесь, что служба bind запущена от имени того же пользователя, что и владелец файла ispsrv.com. Выполните команду
[root@dns ~]# ls -l /etc/bind/ispsrv.com -rw -r
Следующий результат этой команды говорит о том, что владельцем /etc/bind/ispsrv.com является суперпользователь root:
1 root root 444 Oct 12 16:00 /etc/bind/fvdstest.com
Также проверьте права на саму папку /etc/bind/ командой:
[root@dns ~]# ls -ld /etc/bind/ drwxr-sr-x
Следующий результат указывает на то, что директория доступна пользователям root и bind:
2 root bind 4096 Oct 12 16:07 /etc/bind
Ошибка “No address records (A or AAAA)”
Следующие строки в лог-файле DNS означают, что ресурсная А-запись отсутствует для дочернего NS:
Oct 12 15:23:50 ispsrv ds named[19931]: zone ispsrv.ru/IN: NS 'ns1.ispsrv.com' has no address records (A or AAAA) Oct 12 15:23:50 ispsrv named[19931]: zone ispsrv.ru/IN: NS 'ns2.ispsrv.com' has no address records (A or AAAA) Oct 12 15:23:50 ispsrv named[19931]: zone ispsrv.ru/IN: not loaded due to errors.
В данном случае для DNS-серверов ns1.ispsrv.com и ns2.ispsrv.com отсутствуют А-записи. Сделайте следующие записи в фале named.conf:
ns1 IN A 10.10.10.10 ns2 IN A 11.11.11.11
Ошибка “CNAME and other data”
Следующие строки в лог-файле DNS означают, что для одного домена прописаны одновременно А и CNAME ресурсные записи:
Oct 12 16:13:30 ispsrv named[20701]: zone ispsrv.ru/IN: loading from master file /etc/bind/fvdstest.com failed: CNAME and other data Oct 12 16:13:30 ispsrv named[20701]: zone ispsrv.ru/IN: not loaded due to errors.
Конфликт вызывает запись вида:
ispsrv.com. IN A 10.10.10.10 ispsrv.com. IN CNAME isptest.com
Оставьте только одну необходимую запись.
Ошибка “Query denied”
Следующие строки в лог-файле DNS означают, что ваш запрос к DNS-серверу запрещен:
Oct 12 16:53:03 ispsrv named[03771]: client 188.120.234.14#49834: query ‘ispsrv.com/A/IN’ denied
А таком случае DNS-сервер возможно настроен так, что запросы к нему разрешены только от дочернего DNS (slave).
Ошибка “Transfer failed”
Следующие строки в лог-файле DNS означают, что в конфигурации DNS запрещен трансфер на данный IP-адрес зоны домена:
Oct 12 17:13:13 ispsrv named[83374]: client 188.126.231.143#50652: zone transfer ispsrv.com/AXFR/IN' denied
Команда dig указывает на эту ошибку следующим ответом:
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> ispsrv.com @10.10.10.10 AXFR ;; global options: +cmd ; Transfer failed.
Ошибка в синтаксисе
Если вы случайно допустили синтаксическую ошибку в конфигурации файла доменной зоны, то в ответе на команду dig появятся не ожидаемые вами обозначения. Например,
;; QUESTION SECTION: ;<domain>. IN A ;; ANSWER SECTION: <domain>. 3600 IN A 123.123.123.123 ;; AUTHORITY SECTION: <domain>. 3600 IN NS ns2.ispsrv.ru.<domain>. <domain>. 3600 IN NS ns1.ispsrv.ru.<domain>.
<domain> означает, что после ns1.ispsrv.ru не поставлена точка. Исправьте ошибку, поставив закрывающую точку: ns1.ispsrv.ru.
Name resolution is the process of relating easy-to-remember names with difficult-to-remember Internet Protocol (IP) addresses. The Domain Name System (DNS) provides name resolution services in most environments. These internal servers host a dynamic database of names and related IP addresses. These names may be as simple as hostnames or as complex as fully qualified domain names and web URLs.
DNS servers host resource records, such as start of authority (SOA), name server (NS), and mail exchange (ME). The two most common record types are A and pointer records (PTR). The A records service forwards lookup requests, specifying that a given name is related to a particular IP address. PTR maps an IP address to a particular name. When a forward lookup query arrives, it is serviced by the A record for that name. When a reverse lookup query arrives, the PTR for that IP address services it.
What might make you suspect a name resolution problem? Perhaps a user comments that they can no longer reach a resource such as a file server or printer, or an email server seems unavailable. Users may experience intermittent difficulty accessing an internal web server or related service. Perhaps users can connect to a server, but it isn’t the correct server, so an unexpected web page is displayed.
Because there are many types of name servers, especially in large networks, it can be difficult to determine the culprit. When troubleshooting, it can be useful to query specific name servers and examine their administrative resource records.
Install the tools
This article compares four useful tools for testing name resolution on your Linux systems:
- ping
- nslookup
- dig
- host
Before you begin, ensure the commands are installed. The ping command is probably already on your system, provided by the iputils package, but the other ones are in bindutils and aren’t installed by default. Install them using dnf or yum:
$ sudo dnf install bind-utils
How to use ping
The basic ping command can help narrow down name resolution problems. This is a fundamental Linux troubleshooting technique.
First, test connectivity by hostname, assuming a remote host named server01 with an IP address of 192.168.1.101:
$ ping -c 3 server01
If this succeeds and name resolution works, you probably don’t need to continue along this line of testing. If this test fails, try the ping command with the remote IP address:
$ ping -c 3 192.168.1.101
If this works, connectivity exists. Name resolution is the problem since that’s where the failure appears. Now you can begin troubleshooting why the system isn’t resolving names properly.
If the ping by IP address fails, you have a network connectivity problem rather than a name resolution problem, and you can troubleshoot in that direction.
Ping helps you narrow down whether you have a name resolution issue or something else is happening.
[ Keep common commands close at hand. Download the Linux commands cheat sheet. ]
How to use nslookup
The nslookup command has been around a while. It has two modes: non-interactive and interactive. This article focuses on non-interactive mode since it most closely resembles the functionality of dig and host.
In non-interactive mode, simply type nslookup and the destination name (or URL) you need to resolve:
$ nslookup server01
This output should display the IP address for server01, along with information about which server resolves the name. If this fails, it indicates a name resolution problem.
Perform a reverse lookup (resolving a known IP address to an unknown name) by typing:
$ nslookup 192.168.1.101
To see specific resource record types, use the -type= option. Here’s an example that queries for the MX records of the example.com domain:
$ nslookup -type=MX example.com
Many administrators work on multiple platforms. Nslookup is notable for being preinstalled on Microsoft Windows, which means you can learn one troubleshooting tool and use it on two platforms.
How nslookup compares
Nslookup is the oldest of the three tools and has been on the deprecation chopping block at least once. However, it’s still around. One concern about nslookup compared to host and dig is the format of its responses. It may be more difficult to extract information due to its layout. This becomes important when nslookup is used within a larger script.
How to use dig
Like the other commands in this article, dig enables you to make manual name resolution queries. It provides an immense amount of detail about the results, so many people prefer using it for significant troubleshooting tasks.
Generate forward lookups like this:
$ dig server01
Initiate a reverse lookup by using the -x option and the known IP address:
$ dig -x 192.168.1.101
Query the name server for specific record types by appending the type to the command:
$ dig example.com MX
This resolves the mail server for the example.com domain name.
As you can see, similar functionality exists within dig as nslookup.
[ Learn how to manage your Linux environment for success. ]
How dig compares
Using dig provides similar information as nslookup in a more organized format that’s easier to parse.
How to use host
Doing manual name resolutions with the host command are also straightforward.
Here is the basic syntax for a forward lookup:
$ host server01
Here’s the syntax for a reverse lookup:
$ host 192.168.1.101
Querying for SOA records relies on the -C option:
$ host -C example.com
The -t option causes the host command to display the specified record type. The following example queries for the MX records of example.com:
$ host -t mx example.com
If you’re not sure which record types you need or if you want to see them all, use the -a (any) option:
$ host -a example.com
To narrow the query’s scope to either IPv4 or IPv6 records, add the -4 or -6 options to the regular syntax. This may speed up query results in large networks or provide the focused information you need for additional troubleshooting.
Like nslookup and dig, host provides both forward and reverse lookups along with resource record type queries.
How host compares
Administrators may prefer host for its simplicity. Sometimes the detailed output from dig is too distracting or provides more information than is really required. For a quick, basic response, try host. It may also be the right solution for your scripts.
Wrapping up
To some degree, nslookup, dig, and host provide the same information and offer similar filtering options. The one you use in your next troubleshooting task may simply be the one that’s installed, especially if you work with multiple distributions or have created your own Linux version. I recommend knowing how to do a basic query with all three tools.
Some command options require a DNS zone transfer, which often is not allowed by the DNS server. Be aware of this, particularly for external name resolution servers or other DNS servers you don’t manage.
Finally, don’t forget that ping is a good place to start. It’s a quick way of determining whether name resolution is working correctly before delving deeper into manual resolution attempts that may not be part of the issue.























