Как проверить, работает ли DNS-имя?

Ответ

При диагностике проблем с доступностью сервиса первым делом проверяю разрешение DNS. Использую комбинацию инструментов для полной картины.

1. Базовые проверки разрешения имен

# Проверка A-записи
nslookup example.com
# Или более подробно
dig example.com +short

# Проверка всех типов записей
dig example.com ANY

# Проверка конкретного DNS-сервера
dig @8.8.8.8 example.com

2. Проверка доступности сервиса После подтверждения разрешения DNS проверяю, отвечает ли сервис:

# Проверка HTTP/HTTPS
curl -I https://example.com
# С таймаутом
curl --connect-timeout 5 -I https://example.com

# Проверка конкретного порта
nc -zv example.com 443
# Или
telnet example.com 80

3. Трассировка и анализ задержек

# Traceroute до хоста
traceroute example.com
# Или mtr для постоянного мониторинга
mtr --report example.com

# Проверка времени ответа DNS
dig example.com | grep "Query time"

4. Внешние проверки Для исключения локальных проблем проверяю с разных точек:

  • Из разных сетей (офис, дом, мобильный интернет)
  • Через публичные DNS-серверы (1.1.1.1, 8.8.8.8)
  • С помощью онлайн-сервисов:

Типичные сценарии проблем:

  • DNS не разрешается — проблема с DNS-сервером или записью
  • Разрешается, но сервис не отвечает — проблема с веб-сервером или фаерволом
  • Разрешается только из некоторых сетей — проблема с географическим распределением или кэшированием
  • Большая задержка разрешения — проблема с DNS-сервером или сетью

Ответ 18+ 🔞

Ну ты смотри, какие сложности бывают! Вот сидишь такой, пытаешься до сервиса добраться, а он тебе — ни гу-гу. Первым делом, ёпта, всегда лезу в DNS, потому что в 90% случаев вся херня именно там и начинается. Сервис может быть жив-здоров, а имя не резолвится — и всё, сидишь как дурак перед пустым экраном.

1. Сначала луплю по DNS, как по горячей сковородке

# Глянул A-запись, чтоб понять, куда вообще стучаться
nslookup example.com
# Или покороче, если тороплюсь
dig example.com +short

# А если совсем нихуя не понятно, вытряхиваю из него ВСЁ, что знает
dig example.com ANY

# Иногда локальный DNS такой кривой, что хоть плачь. Тогда тыкаю в гугловский
dig @8.8.8.8 example.com

2. Если имя-то разрешилось, а отклика всё равно нет — вот тут волнение ебать начинается Значит, сервер-то есть, но он нас игнорирует. Надо проверить, не сдох ли он совсем.

# Пробую постучаться по HTTP, хоть заголовки забрать
curl -I https://example.com
# Если молчит как партизан, ставлю таймаут, чтоб не ждать до второго пришествия
curl --connect-timeout 5 -I https://example.com

# А может, порт конкретный проверить? 443-й, 80-й...
nc -zv example.com 443
# Или по-старинке, если `nc` нет
telnet example.com 80

3. Если и порт открыт, но ответа нет — делаю трассировку, чтоб понять, где эта хитрая жопа засела

# Классический traceroute, видно, на каком прыжке пакеты глохнут
traceroute example.com
# А лучше mtr — он как постоянный допрос с пристрастием, показывает задержки и потери
mtr --report example.com

# Заодно смотрю, не долго ли DNS-сервер тупит
dig example.com | grep "Query time"

4. И самое главное — проверяю снаружи, а то мало ли у меня самого глюк Вдруг это моя сеть накрылась медным тазом, а я тут всю инфраструктуру ломаю? Беру и проверяю:

  • Из другой сети — с телефона через мобильный интернет, например. Вдруг в офисе маршрутизатор ебанутый.
  • Через публичные DNS — типа 1.1.1.1 или 8.8.8.8. Если и там не резолвится — значит, проблема точно на той стороне, ядрёна вошь.
  • Онлайн-сервисы в помощь:
    • dnschecker.org — показывает, как твоё доменное имя видят со всего мира. Овердохуища полезная штука.
    • ping.pe — стучится к твоему серверу из разных стран и показывает, где он отвечает, а где нет.
    • digwebinterface.com — тот же dig, но в браузере, если на сервере командной строки нет.

А теперь типичные грабли, на которые наступают все:

  • DNS вообще молчит — значит, запись кривая, сервер сдох или ты опечатался. Доверия ебать ноль к своим глазам в этот момент.
  • Имя есть, а сервис — нет — веб-сервер лег, фаервол блокирует или конфиг ебанутый. Надо лезть уже на сам хост.
  • Из дома работает, а из офиса — нет — классика! Значит, где-то кэш старый, или маршруты кривые, или ещё какая мартышлюшка.
  • DNS резолвится, но оооочень долго — это пиздец как раздражает. Значит, DNS-сервер тупит, или сеть лагает, или трафик через жопу идёт.

В общем, алгоритм простой: сначала DNS, потом доступность, потом уже копать глубже. А то бывает, начнёшь с трассировки, а проблема-то в первой же строчке — имя не находится. Сам от себя охуеешь, сколько времени потратил впустую.