Вопрос или проблема
Мой компьютер работает на Windows 10 22H2 19045.5011, сегодня он внезапно не может разрешить (только) stackoverflow.com, как ping, так и tracert не работают, вот поведение в cmd:
E:\>ipconfig /flushdns
Конфигурация IP Windows
Кеш резолвера DNS успешно сброшен.
E:\>ping stackoverflow.com
Запрос ping не может найти хост stackoverflow.com. Пожалуйста, проверьте имя и попробуйте снова.
E:\>tracert stackoverflow.com
Не удалось разрешить имя целевой системы stackoverflow.com.
Сначала я соберу пункты, которые я проверил, и позже изложу результаты.
DNS
hosts
фаервол
прокси и VPN
На первый взгляд, это может быть проблема с DNS-сервером, но nslookup работает:
E:\>nslookup stackoverflow.com
Сервер: Неизвестен
Адрес: 192.168.0.99
Имя: stackoverflow.com
Служит:
– damian.ns.cloudflare.com
172.64.35.50
108.162.195.50
162.159.44.50
2803:f800:50::6ca2:c332
2a06:98c1:50::ac40:2332
2606:4700:58::a29f:2c32
stackoverflow.com
– sureena.ns.cloudflare.com
172.64.34.126
108.162.194.126
162.159.38.126
2606:4700:50::a29f:267e
2803:f800:50::6ca2:c27e
2a06:98c1:50::ac40:227e
stackoverflow.com
Я также проверил файл hosts, и проблем нет:
E:\>type c:\windows\system32\drivers\etc\hosts
# Авторские права (c) 1993-2009 Microsoft Corp.
#
# Это образец файла HOSTS, используемого Microsoft TCP/IP для Windows.
#
# Этот файл содержит отображение IP-адресов на имена хостов. Каждая
# запись должна находиться на отдельной строке. IP-адрес должен
# быть помещен в первый столбец, за которым следует соответствующее имя хоста.
# IP-адрес и имя хоста должны быть разделены как минимум одним
# пробелом.
#
# Кроме того, комментарии (такие как эти) могут быть добавлены на отдельные
# строки или после имени машины, обозначенного символом ‘#’.
#
# Например:
#
# 102.54.94.97 rhino.acme.com # сервер источника
# 38.25.63.10 x.acme.com # x клиентский хост
# разрешение имени localhost обрабатывается внутри самого DNS.
127.0.0.1 localhost
::1 localhost
Я не устанавливал никакое программное обеспечение для защиты или антивирусное ПО, кроме Windows Defender. Я также пытался отключить его фаервол, но это тоже не сработало.
Нет активированного прокси или VPN.
Наконец, я попытался использовать Wireshark для захвата DNS и ICMP трафика (был захвачен только DNS трафик):
39 17.066267 192.168.0.104 192.168.0.99 DNS 77 Стандартный запрос 0x1854 A stackoverflow.com
40 17.067214 192.168.0.99 192.168.0.104 DNS 420 Стандартный ответ на запрос 0x1854 A stackoverflow.com
NS damian.ns.cloudflare.com NS sureena.ns.cloudflare
.com A 172.64.35.50 A 108.162.195.50
A 162.159.44.50 A 172.64.34.126 A 108.162.194.126
A 162.159.38.126 AAAA 2803:f800:50::6ca2:c332
……
Каждый раз, когда я выполнял команду ping, генерировался соответствующий запрос и ответ DNS, но я заметил, что команда ping немедленно отображала ошибку после выполнения (до получения ответа DNS), что очень странно.
Я смог успешно разрешить другие URL, даже www.stackoverflow.com, через ping. Даже для несуществующих URL ping ожидал около 1 секунды перед отображением ошибки, кроме stackoverflow.com.
На данный момент я действительно не знаю, какие другие настройки можно проверить. Пожалуйста, дайте мне несколько советов. Заранее спасибо.
“Служит” в выводе nslookup показывает ваш DNS-сервер (в общем, ваш маршрутизатор), который возвращает ответ на перенаправление – указывающий не на фактический адрес, запрашиваемый, а на другой набор DNS-серверов, к которым клиент должен запросить снова.
Windows не поддерживает следование перенаправлениям; у него есть минимальный клиент DNS, который полагается на DNS-сервер для выполнения всей работы по перегонке перенаправлений до возвращения окончательного ответа. (Nslookup.exe использует встроенный DNS-клиент вместо Windows-клиента, но тем не менее это очень минимальный клиент, который не следует за перенаправлениями.)
Программное обеспечение DNS маршрутизатора, скорее всего, полагается на другой вышестоящий DNS-сервер (обычно провайдера), чтобы обрабатывать перенаправления, и он просто передает любой полученный ответ, что означает, что вышестоящий DNS-сервер вернул неправильный ответ и маршрутизатор закэшировал его – он вернул перенаправление маршрутизатору, хотя и должен был его обработать. (Хотя я могу представить другие возможности, например, путаница в пакетах в кэше DNS маршрутизатора и т. д.)
Ответ или решение
Ваша проблема с невозможностью разрешить доменное имя stackoverflow.com на компьютере с Windows 10 22H2, как кажется, связана с неправильной работой DNS-сервера, который обслуживает ваши запросы. Давайте проанализируем вашу ситуацию более детально и предложим возможные решения.
Анализ проблемы
-
Проверка кэша DNS: Вы уже успешно очистили кэш DNS с помощью команды
ipconfig /flushdns
. Это необходимый шаг, поскольку иногда старые или испорченные записи могут мешать нормальной работе. -
nslookup: Команда
nslookup
успешно разрешает stackoverflow.com, показывая, что проблема не в самом доменном имени. Однако ваш локальный DNS-сервер (192.168.0.99, вероятно, ваш роутер) возвращает ответ, который указывает на дополнительные серверы, но сам не предоставляет IP-адреса для прямого подключения. -
tracert и ping: Оба инструмента не могут найти адрес stackoverflow.com, причем ping сразу завершает выполнение без ожидания ответа. Это может указывать на локальные настройки вашего DNS-клиента.
-
Заблокированные порты или службы: Вы отключили брандмауэр Windows, но стоит проверить, нет ли на роутере настроек, которые блокируют обращения к определённым доменам.
Возможные решения
-
Используйте другой DNS-сервер: Попробуйте сменить сервер DNS на относительно стабильный и быстрый, например Google (8.8.8.8 и 8.8.4.4) или Cloudflare (1.1.1.1). Это делается через параметры сетевого подключения:
- Откройте Параметры сети и интернет.
- Перейдите в раздел "Изменение параметров адаптера".
- Щелкните правой кнопкой мыши по вашему сетевому подключению и выберите "Свойства".
- Выберите "Протокол Интернета версии 4 (TCP/IPv4)" и нажмите "Свойства".
- Убедитесь, что выбраны "Использовать следующий DNS-сервер" и укажите альтернативные адреса.
-
Проверка прокси и VPN: Убедитесь, что на данный момент никаких прокси-серверов или VPN не активировано. Даже если они не используются, иногда остаются их следы в настройках, которые могут мешать. Проверьте настройки Proxy в разделе "Параметры сети и интернет".
-
Перезагрузка роутера: Простой, но часто эффективный способ. Перезапустите ваш роутер, чтобы очистить его кэш DNS.
-
Проверка конфигурации DHCP: Убедитесь, что DHCP правильно выдает конфигурацию. Иногда роутер может неправильно настраивать клиентские машины.
-
Ручное редактирование файла hosts: Ошибка в файле hosts может спровоцировать такую ситуацию – но вы уже проверили этот файл, и там не указаны какие-либо неправильные записи.
-
Тестирование с другого устройства: Попробуйте осуществить те же запросы с другого устройства в вашей сети. Если проблема сохраняется только на этом устройстве, проблема, вероятно, связана с конфигурацией именно в вашем ПК.
Заключение
Сложности, возникающие при разрешении доменных имен, могут быть вызваны разнообразными факторами, начиная от кэша на уровне клиента и заканчивая конфигурацией роутера. Следуя вышеуказанным рекомендациям, вы сможете определить источник проблемы и, возможно, устранить её. Если проблема продолжает существовать, стоит обратиться за помощью к вашему интернет-провайдеру, поскольку они могут иметь доступ к информации о статусе их DNS-серверов.