Проблема SSH-подключения: не могу подключиться к серверу
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Полное руководство по диагностике и решению проблем DNS с помощью dig, nslookup, проверки распространения DNS, очистки кеша и решения распространённых ошибок DNS.
DNS (Domain Name System) — один из фундаментальных компонентов интернет-инфраструктуры. Эта система преобразует доменные имена в IP-адреса, и при её некорректной работе могут быть нарушены многие сервисы: доступ к веб-сайтам, доставка электронной почты и подключения к серверам.
В этом руководстве мы подробно рассмотрим инструменты и методы диагностики и решения проблем DNS.
| Тип записи | Описание | Пример |
|---|---|---|
| A | Сопоставление с IPv4-адресом | example.com → 1.2.3.4 |
| AAAA | Сопоставление с IPv6-адресом | example.com → 2001:db8::1 |
| CNAME | Псевдоним другого домена | www → example.com |
| MX | Маршрутизация почтового сервера | mail.example.com (приоритет: 10) |
| TXT | Текстовая запись (SPF, DKIM и т.д.) | v=spf1 ip4:1.2.3.4 -all |
| NS | Определение сервера имён | ns1.example.com |
| PTR | Обратная DNS-запись | 4.3.2.1 → example.com |
| SOA | Запись авторитета зоны | TTL, serial, refresh |
Пользователь → Локальный DNS-кеш → Рекурсивный резолвер → Корневой NS → TLD NS → Авторитетный NS → IP-адрес
dig (Domain Information Groper) — самый мощный инструмент для диагностики проблем DNS.
# Запрос A-записи
dig example.com A
# Запрос с определённого DNS-сервера
dig @8.8.8.8 example.com A
# Краткий вывод
dig example.com +short
# Запрос всех типов записей
dig example.com ANY
# Запрос MX-записи
dig example.com MX
# Запрос NS-записи
dig example.com NS
# Запрос TXT-записи
dig example.com TXT
# Режим трассировки — показывает процесс разрешения пошагово
dig example.com +trace
# SOA-запись — информация о зоне
dig example.com SOA
# Обратный DNS-запрос
dig -x 1.2.3.4
# Запрос по TCP (для больших ответов)
dig example.com +tcp
# Проверка DNSSEC
dig example.com +dnssec
$ dig example.com A
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; MSG SIZE rcvd: 56
Ключевые поля:
nslookup — более простой инструмент для DNS-запросов:
# Базовый запрос
nslookup example.com
# Запрос с определённого DNS-сервера
nslookup example.com 8.8.8.8
# Запрос MX-записи
nslookup -type=MX example.com
# Запрос NS-записи
nslookup -type=NS example.com
# Обратный DNS
nslookup 1.2.3.4
При внесении изменений в DNS требуется время для распространения новых записей на все DNS-серверы.
| Тип записи | Типичный TTL | Время распространения |
|---|---|---|
| A / AAAA | 300-3600 сек | 5 мин - 1 час |
| MX | 3600-86400 сек | 1 - 24 часа |
| NS | 86400 сек | 24 - 48 часов |
| TXT | 300-3600 сек | 5 мин - 1 час |
# Google DNS
dig @8.8.8.8 example.com A +short
# Cloudflare DNS
dig @1.1.1.1 example.com A +short
# Quad9 DNS
dig @9.9.9.9 example.com A +short
Онлайн-инструменты проверки распространения:
Чтобы ускорить распространение DNS, уменьшите значение TTL перед внесением изменений (например, 300 секунд). После завершения изменений можно снова увеличить TTL.
# Linux (systemd-resolved)
sudo systemd-resolve --flush-caches
sudo resolvectl flush-caches
# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdns
# Очистка кеша BIND named
sudo rndc flush
# Для определённой зоны
sudo rndc flushname example.com
# Очистка кеша Unbound
sudo unbound-control flush_zone example.com
Для очистки DNS-кеша в Chrome:
chrome://net-internals/#dns → Clear host cache
$ dig nonexistent.example.com
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN
Причины:
Решение:
# Проверьте WHOIS-информацию домена
whois example.com
# Проверьте серверы имён
dig example.com NS +short
# Запросите с авторитетного NS
dig @ns1.example.com example.com A
Причины:
Решение:
# Проверьте доступность сервера имён
dig @ns1.example.com example.com A
# Проверьте статус DNSSEC
dig example.com +dnssec
# Попробуйте другой резолвер
dig @1.1.1.1 example.com A
Решение:
# Очистите кеш
sudo systemd-resolve --flush-caches
# Запросите напрямую с авторитетного NS
dig @ns1.example.com example.com A +short
# Проверьте путь разрешения с помощью trace
dig example.com +trace
Решение:
# Измерьте время ответа DNS
dig example.com | grep "Query time"
# Сравните разные DNS-серверы
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
echo "$dns: $(dig @$dns example.com +short +stats | grep 'Query time')"
done
Для постоянных настроек DNS используйте конфигурацию systemd-resolved или NetworkManager вместо прямого редактирования /etc/resolv.conf.
#!/bin/bash
DOMAIN="example.com"
echo "=== Диагностика DNS: $DOMAIN ==="
echo -e "\n[1] Серверы имён:"
dig $DOMAIN NS +short
echo -e "\n[2] A-запись:"
dig $DOMAIN A +short
echo -e "\n[3] MX-запись:"
dig $DOMAIN MX +short
echo -e "\n[4] TXT-записи:"
dig $DOMAIN TXT +short
echo -e "\n[5] Проверка распространения:"
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
result=$(dig @$dns $DOMAIN A +short)
echo " $dns → $result"
done
echo -e "\n=== Проверка завершена ==="
Проблемы DNS — одни из самых распространённых в управлении серверами. Эффективно используя инструменты dig и nslookup, вы можете быстро диагностировать проблемы, отслеживать процессы распространения и решать проблемы с кешем. Не забывайте снижать значения TTL перед изменениями DNS и проверять с разных DNS-серверов после изменений.
Время распространения DNS зависит от значения TTL. При низком TTL (300 сек) изменения могут распространиться за 5-30 минут. При высоком TTL (86400 сек) это может занять 24-48 часов. Изменения NS-записей обычно занимают больше всего времени.
Ubuntu/Debian: sudo apt install dnsutils, CentOS/RHEL: sudo yum install bind-utils, macOS: установите через Homebrew командой brew install bind.
DNS-сервер вашего провайдера может всё ещё кешировать старую запись. Проверьте с помощью Google DNS (8.8.8.8) или Cloudflare DNS (1.1.1.1). Также не забудьте очистить DNS-кеш браузера.
Проверьте через whois, что срок действия домена не истёк. Убедитесь, что серверы имён правильно настроены с помощью dig domain.com NS. Проверьте наличие DNS-записи на авторитетном сервере имён с помощью dig @ns1.domain.com domain.com A.
В Linux вы можете изменить DNS-сервер, отредактировав /etc/resolv.conf или обновив конфигурацию systemd-resolved. Для постоянных изменений рекомендуется использовать конфигурацию NetworkManager или netplan.
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Руководство по решению проблем RDP-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для порта RDP и шаги по устранению неполадок.
Руководство по сетевому тестированию с помощью WinMTR и Linux MTR, создание правила фильтрации ICMP и отправка результатов в службу поддержки. Диагностика потери пакетов.