В двух словах о DNS
DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).
То есть с помощью DNS мы из слова localhost в строке браузера получим IP-адрес 127.0.0.1, соответствующий нашему локальному сетевому интерфейсу. Удобно, но само это сопоставление имя -> адрес хранится во многих местах. Сначала поглядеть в кеше, потом в /etc/hosts, затем сходить на сервера DNS, прописанные в /etc/resolve.conf, а они ходят на другие сервера DNS… И так до корневых. И на каждом уровне есть задержка обновления информации, кеши и прочие радости.
В результате неактуальных данных о DNS у нас могут быть интересные проблемы:
- Ошибка «connection timed out» при попытке открыть страничку в браузере.
- После регистрации домена можно долго ждать, пока все DNS-сервера о нём узнают.
- Неправильные IP, которые закешировались и ведут на неправильный IP сервера (сайт будет недоступен).
Сколько обновляются DNS записи
По-разному.
Можно сразу прописать в /etc/hosts — будет сразу.
Можно (теоретически) принудительно перезапустить сервисы DNS на всех серверах по пути к твоему, очистить DNS-кеш у себя на компьютере и получить почти сразу новые данные о домене.
Но если не фантазировать, то это время колеблется от десятков минут до пары дней. То есть зарегистрированный домен или измененные записи DNS станут «видны» в интернете не сразу, а лишь по истечению некоторого времени.
Как очистить DNS кеш у себя на компьютере
Как ни странно, на Windows очистить DNS-кеш можно одной командой в консоли:
ipconfig /flushdns
В то время как на Linux существует много вариантов, каждый из которых не работает в конкретном дистрибутиве и т. д.
Если у нас Ubuntu, то я бы рекомендовал поставить службу nscd (name service caching daemon) и очистить ей DNS кеш:
sudo apt install nscd sudo service nscd restart
Также можно посмотреть, что вообще происходит с кешем:
sudo nscd -g
И список закешированных доменов
sudo strings /var/cache/nscd/hosts