Управление портами на VPS и выделенных серверах: как проверить открытые порты, правильно настроить фаервол, избежать типичных ошибок и повысить безопасность инф...
Блог компании 3v-Hosting
13 мин.
ERR_NAME_NOT_RESOLVED - это одна из самых раздражающих ошибок браузера, потому что она выглядит как будто сайт умер, хотя на самом деле сервер может быть живее всех живых. Вы запускаете проект, переносите домен на новый VPS, выкатываете Ingress в Kubernetes, подключаете CDN или просто хотите зайти на админку, как внезапно вместо страницы получаете ответ, что это доменное имя не определено.
Эта ошибка почти всегда про DNS, а DNS - штука коварная, так как по своей архитектуре она имеет распределенную природу, она кэшируемая, а также система доменных имён зависит от кучи промежуточных узлов. Поэтому у одного пользователя сайт может открываться, у другого - нет, а у третьего вообще браузер отдаёт ошибку ERR_NAME_NOT_RESOLVED.
В данной статье мы попроуем разобраться, что именно приводит к появлению данной ошибки, как быстро понять, где именно проблема, у вас или в зоне домена, как диагностировать NXDOMAIN/SERVFAIL и что делать в разных сценариях - от банальной очистки кэша до проверки делегирования вашего домена.
Для того, чтобы понимать о чем мы будем вести речь, нужно сначала разобраться в том, что такое DNS и как работает эта служба.
DNS (Domain Name System) - это сервис, который переводит понятные человеку доменные имена в IP-адреса, понятные сети. Браузер не умеет переходить на домен сам по себе, он всегда подключается к конкретному IP-адресу. Поэтому, когда вы вводите в адресной строке браузера example.com, сначала происходит DNS-запрос - то есть поиск ответа на вопрос, какому IP-адресу соответствует это доменное имя. Обычно этот ответ берётся из кэша (браузера/операционной системы/провайдера) или запрашивается у рекурсивного DNS-сервера, который при необходимости переправляет запрос до авторитетных DNS-серверов домена и получает A/AAAA/CNAME-записи. Упрощенно, цепочку резолва можно представить такими шагами:
example.com;И вот если на любом из этих этапов IP получить не удалось, то браузер показывает ERR_NAME_NOT_RESOLVED, т.е. ваш браузер просто не знает, к какому серверу обращаться.
В практическом смысле проблема почти всегда сводится к одному из трёх вариантов:
Теперь, когда мы разобрались в самой сути проблемы - давайте подробнее рассмотрим основные причины.
Ниже мы разделим причины на две группы и поясним, почему это разделение будет нам полезным.
Главная ошибка любой диагностики - это хаотичное поведение, например сразу пытаться лезть в панель управления доменом, хотя проблема локальная или наоборот пытаться чистить кэш, когда домен не делегирован, а может быть его и вовсе не существует. Поэтому мы и должны разделить возможные проблемы на такие группы.
Наиболее яркими признаками, свидетельствующими в пользу того, что проблема возникла на стороне пользователя могут являться:
Типичными причами в таких сулчаях могут быть такие:
/etc/hosts присутствуют какие-то устаревшие либо блокирующие записи;Эта группа почти всегда проявляется следующим образом:
dig возвращает NXDOMAIN, SERVFAIL или пустой ANSWER;
Типичными причинами в этом случае могут быть такие:
Теперь, когда мы разобрались в возможных причинах, приводящих к появлению ошибки, мы можем проводить самопроверку и быстро выяснить, на чьей стороне проблема и не метаться, пробуя всё подряд, дёргая поддержку своего провайдера почём зря.
| Симптом | Что это чаще всего означает | Что сделать первым |
|---|---|---|
| Не открывается только у вас | Локальный DNS, кэш, VPN, hosts | Открыть с мобильного интернета, сменить DNS на 1.1.1.1/8.8.8.8 |
| Не открывается у всех | Проблема в DNS-зоне/делегировании | dig example.com и dig NS example.com |
| Открывается по IP, но не по домену | Нет A-записи или неправильная | Проверить A/CNAME в панели DNS |
Работает example.com, но не www |
Нет записи для www |
Добавить A/CNAME для www |
| После изменения записей домен то работает, то нет | Идёт пропагация/кэширование | Проверить TTL и терпеливо дождаться |
| Внутри офиса не работает, дома работает | Корпоративный DNS / фильтрация | Проверить резолверы, split DNS, conditional forwarding |
Эта таблица поможет вам быстро определиться в какую сторону копать, что в итоге сэкономит кучу времени.
Теперь пора переходить к практике. Ипо сути, для локализации проблемы, вам нужно ответить всего на три вопроса:
Давайте разберем пару команд и выясним, на что именно смотреть в ответе.
dig - проверяем, отдается ли IP, существует ли A/AAAA записьСинтаксис данной команды предельно простой:
dig example.com
На что обращать внимание:
status: NOERROR - означает, что домен существует, ответ корректный, но A-запись может быть пустой, если не прописаной;status: NXDOMAIN - домен вовсе не существует в DNS, он либо не делегирован, либо существует ошибка имени или зоны;status: SERVFAIL - сервер не смог обработать запрос. Часто это означает, что проблемы на авторитетных NS, DNSSEC, недоступность.ANSWER SECTION: есть ли A/AAAA-записи.Если раздел ANSWER пустой - это и есть причина, означающая, что IP не найден.
dig NS - проверяем делегированиеПо синтаксису снова никаких сюрпризов:
dig NS example.com
В ответе должны быть NS-серверы. Если NS нет или они явно не те, которые вы ожидаете, проблема может быть в делегировании у регистратора этого домена.
Дальше логика простая:
Если вы знаете, что NS домена - ns1.example.net, можно спросить его напрямую:
dig @ns1.example.net example.com A
Если публичный dig example.com даёт странные результаты, а прямой запрос к NS показывает другую информацию - это с большой вероятностью значит, что где-то по пути информация либо закешировалась либо по пути есть лишний резолвер.
dig +trace - где именно сломалосьНабираем в командной строке:
dig +trace example.com
Эта команда показывает цепочку от корня до авторитетных NS. Это лучший способ увидеть, где именно возникает проблема, например, делегация не сходится, NS не отвечает или зона не отдаёт запись.
Один из самых нервных моментов при работе с DNS - это ситуация, когда после изменения записей сайт начинает вести себя неодинаково. У одного пользователя открывается новая версия, у другого - старая, а у третьего вообще отображается ошибка. Со стороны это выглядит как хаос или нестабильность сервера, хотя чаще всего причиной служит обычное кэширование DNS запросов.
Нам с вами важно понимать, что DNS не обновляется мгновенно по всему миру. Это распределённая система, и изменения, внесенные в данные о домене, распространяются постепенно от одного сервера к вышестоящему в иерархии, а от них вниз к другим.
Существует ещё такой параметр, как TTL (Time To Live) - это время жизни DNS-записи в кэше. По сути, это инструкция резолверу о том, сколько секунд можно хранить тот или иной запрос не перепроверяя.
Если у записи установлен TTL 3600, это означает, что резолвер имеет право хранить полученный IP-адрес в течение одного часа и не запрашивать его заново у авторитетного сервера. Пока TTL не истёк, резолвер будет продолжать отдавать старый ответ, даже в случае, если вы уже поменяли запись.
Так почему-же возникает эффект нестабильной работы? Всё просто.
Проблема в том, что кэширование происходит не в одном месте. В цепочке кеширования участвуют и рекурсивные DNS-серверы провайдеров и корпоративные DNS внутри компаний и т.д. вплоть до кеша самого браузера. Каждый из них может хранить старый ответ до истечения TTL и в результате выходит, что часть пользователей уже получает новый IP, а часть всё ещё видит старый. А если при смене записи была допущена ошибка, некоторые резолверы и вовсе могут временно кэшировать даже негативный ответ (например, NXDOMAIN).
Со стороны это выглядит как нестабильность сайта, но на самом деле это нормальная работа механизма кэширования, к пониманию которого мы только что приблизились.
Если вы планируете перенос вашего сайта или смену IP, то не стоит менять запись в последний момент. Гораздо правильнее и безопаснее будет заранее, за 24-48 часов, снизить TTL (например, до 300 секунд). Тогда кэш будет обновляться быстрее, и переключение произойдёт мягче и предсказуемее.
После завершения миграции TTL можно вернуть к более высокому значению, чтобы снизить нагрузку на DNS-серверы.
Теперь переходим к конкретике - что делать, если ошибка уже возникла. Напомним, что в этом случае важно действовать не хаотично, а исходя из того, что мы уже изучили: сначала понять, где проблема, а затем устранять её на соответствующем уровне.
Как мы уже определились, все ситуации условно делятся на две группы: проблема локальная (у конкретного пользователя) и проблема на стороне домена или DNS-зоны. Подход в этих случаях будет разным.
Локальная проблема означает, что домен в целом существует и у большинства пользователей открывается, но на конкретном компьютере или в конкретной сети возникают проблемы. Это самый частый сценарий после недавних изменений DNS. Что делать в таком случае?
Очистка DNS-кэша
Операционная система и браузер могут хранить старые ответы DNS. Даже если запись уже обновлена на сервере, локальный резолвер может продолжать использовать старый IP. Очищаем кэш на Windows:
ipconfig /flushdns
На Linux (systemd-resolved):
sudo resolvectl flush-caches sudo systemctl restart systemd-resolved
Если используется nscd:
sudo systemctl restart nscd
После очистки кэша система перестанет использовать устаревший IP и запросит свежие данные у DNS-сервера.
Файл hosts имеет приоритет над DNS, поэтому если в нём есть запись для вашего домена, то система вообще не будет обращаться к внешним DNS-серверам.
На Linux/macOS файл находится по пути:
/etc/hosts
На Windows:
C:\Windows\System32\drivers\etc\hosts
Ищите строки с вашим доменом и проверяйте что там написано. Особенно обратите внимание, если рядом с вашим доменом стоит либо старый IP-адрес, либо локальный 127.0.0.1, либо даже 0Исправьте эту запись на действительный IP-адрес и перезапустите систему..0.0.0.
Иногда проблема не в домене, а в DNS-сервере провайдера. Он может кэшировать устаревшие данные или временно работать нестабильно.
Для проверки можно временно указать другие, публичные DNS-серверы в настроках сети вашего компьютера. Наиболее популярными публичными DNS являются серверы Cloudflare - 1.1.1.1 и 1.0.0.1, а также серверы Google - 8.8.8.8 и 8.8.4.4.
Это ни в коем случае не означает, что публичные DNS чем-то лучше. В некоторых случаях, при падении такого публичного сервера - проблемы наблюдаются в большей части интернета, так как очень многие их используют. Нет, это просто способ проверки, так как если с новым DNS всё работает, значит, проблема была на именно на стороне вашего провайдера.
VPN часто подменяет DNS-запросы и использует собственные резолверы. Это может приводить к таким проблемам как:
Отключите ваш VPN и если без него сайт открывается, тогда проблема именно в настройках VPN.
Этот сценарий критичнее для владельцев сайтов. Ведь если ваш домен не резолвится глобально, то пользователи просто не могут попасть на проект. Здесь уже нужно проверять инфраструктуру DNS.
Первое, что стоит сделать - это убедиться, что домен активен и срок его регистрации не истёк. Если срок регистрации закончился, то домен может перейти в стадии удержания или блокировки, и резолвинг будет работать нестабильно или вовсе прекратится.
В панели регистратора обычно сразу видно активен ли домен, не заблокирован ли он, а также не отключена ли делегация.
Если домен делегирован на неправильные NS-серверы, то любые изменения в правильной панели DNS не будут иметь значения, ведь Интернет будет обращаться туда, куда указал регистратор. Поэтому следующим шагом нужно проверить:
Очень часто встречается ошибка, когда зона настроена в одной панели у одного регистратора, а домен делегирован на другие NS-серверы, например вовсе не относящиеся к этому регистратору.
Даже если NS указаны правильно, они должны реально отвечать на запросы. Тогда следует выполнить проверку напрямую:
dig @ns1.example.net example.com A
Если сервер не отвечает или возвращает ошибку, значит проблема в работе DNS-сервера или в конфигурации зоны.
Самая банальная, но и самая распространённая причина - это когда запись просто отсутствует или указана неверно.
В панели управления вашим доменом проверьте:
www, если используется;
И ещё раз напоминаем, что при локализации и устранении проблемы ERR_NAME_NOT_RESOLVED нужно действовать последовательно:
Когда вы двигаетесь по этой цепочке, то вероятность быстрого отыскания и исправления причин ошибки увеличивается.
О DNS обычно вспоминают только тогда, когда что-то уже сломалось. Но на практике именно DNS является вашной, даже входной точкой в ваш проект. Можно иметь идеально настроенный сервер, отказоустойчивый кластер и продуманный CI/CD, но если домен перестал резолвиться, то пользователи просто не попадут на сайт.
А чтобы избежать таких ситуаций, достаточно внедрить всего несколько базовых практик.
Для публичного домена нормой считается наличие как минимум двух NS-серверов, желательно в разных сетях или локациях. Это не избыточность ради галочки, а защита от ситуации, когда один сервер становится недоступен.
Частой ошибкой является мониторинг только HTTP/HTTPS. Но если DNS перестал работать, до веб-сервера дело просто не дойдёт. Поэтому имеет смысл контролировать также:
www;
Это можно настроить в Zabbix, Prometheus (через blackbox_exporter) или в любом внешнем сервисе мониторинга. Главное - это проверять резолвинг именно снаружи, из интернета, а не из своей-же инфраструктуры.
Многие внезапные падения бывают связаны не с техническими проблемами, а с организационными, когда срок действия домена истёк, письмо от регистратора ушло в спам или платёж по инвойсу не прошёл.
Минимальный набор мер для исключения этих вариантов - это:
Это банально, но именно такие мелочи часто становятся причиной реальных простоев.
Если вы планируете смену IP или перенос проекта, не меняйте запись в последний момент. Лучше за 1-2 дня до миграции снизьте TTL (например, до 300 секунд) и тогда кэши будут обновляться быстрее, а переключение пройдёт гораздо спокойнее.
После стабилизации можно вернуть TTL к более высокому значению.
Если вы управляете зоной самостоятельно (например, через BIND), полезно проверять её перед перезапуском DNS-сервера:
named-checkzone example.com /etc/bind/zones/db.example.com
Так можно поймать синтаксические ошибки до того, как они станут проблемой для пользователей.
В итоге профилактика DNS - это не про построение сложной архитектуры, а про аккуратность и контроль. Когда зона корректна, серверы резервированы, домен продлён, а резолвинг мониторится, то ERR_NAME_NOT_RESOLVED становится редким исключением, а не регулярной головной болью.
Потому что DNS не возвращает IP. Сервер жив, но домен не указывает на него (нет A-записи или она неправильная).
Нет. SSL начинается после получения IP и установки соединения. При ERR_NAME_NOT_RESOLVED до SSL не доходит.
Зависит от TTL и кэшей. Обычно от минут до суток. 48 часов - это верхняя планка для плохо управляемых кэшей, но на практике чаще всего это происходит гораздо быстрее.
Да. Особенно при неправильных NS у регистратора, выключенной зоне, конфликте DNSSEC, ошибках в записях внутри CDN.
Нет. Firewall может дать timeout, connection refused и подобное. ERR_NAME_NOT_RESOLVED возникает раньше - когда IP ещё не получен.
Ошибка ERR_NAME_NOT_RESOLVED - это не падение сервера и не проблема браузера. Это остановка на самом первом этапе - этапе DNS-разрешения. Браузер просто не получил IP-адрес и поэтому не может начать соединение.
В большинстве случаев причина оказывается довольно приземлённой, например отсутствует A-запись, неправильно настроено делегирование, домен истёк или кэш ещё держит старые данные после миграции. Реже бывают более глубинные проблемы, когда не отвечают авторитетные NS, возникает SERVFAIL, конфликтует DNSSEC, некорректно настроен split DNS в корпоративной сети или есть ошибки в CoreDNS внутри Kubernetes.
Ключом к успешному и быстрому решению является не гадание о причинах, а методичные действия по простому алгоритму. Несколько простых команд, таких как dig с параметрами, позволяют быстро понять, где именно произошёл сбой, на уровне кэша, резолвера, делегирования или самой зоны. Когда точка отказа найдена, ошибка перестаёт быть большой проблемой и превращается уже в обычную инфраструктурную задачу, которую нужно решить.
Что такое WHOIS и как его использовать: проверка домена, IP и ASN, статус, делегирование, GDPR, отличие от RDAP и практические сценарии для администраторов и би...
Фавикон - что это такое, зачем он нужен и как правильно настроить для всех браузеров и устройств. Размеры, форматы, SEO-влияние и частые ошибки в одном гайде.
Переключение пользователей в Ubuntu: su, sudo, sudo -i, sudo -u и SSH. Практическое руководство по безопасной работе с правами, окружением и сессиями на сервера...