- Вопрос или проблема
- Справка по команде ipconfig – попробуйте это сначала
- Справка по команде Ping – порядок разрешения: Хост, DNS-сервер, NetBIOS
- Порядок разрешения имен хостов – описывает порядок и шаги для проверки
- Ответ или решение
- 1. Важные аспекты разрешения имен
- 2. Направления для устранения неполадок
- 3. Hotfix с использованием nslookup
- 4. Проверьте настройки NetBIOS
- 5. Проверка сетевых конфликтов
- 6. Сравнение с Linux
- Заключение
Вопрос или проблема
У меня есть машина с Windows 10, которая проявляет странное поведение. Когда я пытаюсь разрешить устройства в своей сети по имени, они не разрешаются.
Однако команда ping -a
для IP-адреса будет разрешать правильное имя.
Команда nslookup работает как по имени, так и по IP-адресу.
Когда я использую браузер или пытаюсь подключиться по SSH, соединение выдает ошибку, если я использую имя хоста, но работает по IP-адресу.
C:\Users\benwh
λ ping -a 192.168.1.4
Пинг в lexmark [192.168.1.4] с 32 байтами данных:
Ответ от 192.168.1.4: байт=32 время<1мс TTL=254
Ответ от 192.168.1.4: байт=32 время<1мс TTL=254
Ответ от 192.168.1.4: байт=32 время<1мс TTL=254
Ответ от 192.168.1.4: байт=32 время<1мс TTL=254
Статистика пинга для 192.168.1.4:
Пакеты: Отправлено = 4, Получено = 4, Потеряно = 0 (0% потеря),
Приблизительное время в пути в миллисекундах:
Минимум = 0мс, Максимум = 0мс, Среднее = 0мс
C:\Users\benwh
λ ping lexmark
Запрос пинга не смог найти хост lexmark. Пожалуйста, проверьте имя и попробуйте снова.
C:\Users\benwh
λ nslookup lexmark
Сервер: UnKnown
Адрес: 192.168.1.1
Имя: lexmark
Адрес: 192.168.1.4
C:\Users\benwh
λ nslookup 192.168.1.4
Сервер: UnKnown
Адрес: 192.168.1.1
Имя: lexmark
Адрес: 192.168.1.4
На машине с Linux с такими же настройками, предоставленными DHCP, пинг работает нормально.
Справка по команде ipconfig – попробуйте это сначала
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ipconfig
ipconfig /flushdns
Справка по команде Ping – порядок разрешения: Хост, DNS-сервер, NetBIOS
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ping
Порядок разрешения имен хостов – описывает порядок и шаги для проверки
https://support.microsoft.com/en-us/help/172218/microsoft-tcp-ip-host-name-resolution-order
Скорее всего, кэш DNS сообщает неверную информацию на машине с Windows.
Если у вас настроено несколько DNS-серверов для сетевого адаптера, не все сетевые подключения Windows будут автоматически их использовать. Это может сделать диагностику проблем с DNS несколько запутанной.
В частности, nslookup
использует только первый DNS-сервер, настроенный для сетевого адаптера (по умолчанию).
Вы можете проверить DNS-серверы и их приоритет, углубившись в свойства сетевого адаптера. Вы также можете перечислить их с помощью
ipconfig /all
Если у вас настроен другой локальный DNS-сервер, и он работал успешно до недавнего времени, программы, обращающиеся к сети, могут попытаться использовать его, но он может в данный момент не работать, что может быть причиной возникшей проблемы. Чтобы проверить это, вы можете выполнить nslookup
для конкретного DNS-сервера, используя:
dnslookup lexmark SERVER
где SERVER – это имя сервера или IP-адрес.
Ответ или решение
Проблема с тем, что ваш компьютер на Windows 10 не может разрешить имена, в то время как команда nslookup
работает корректно, может быть вызвана различными факторами, связанными с настройками сети и разрешением имен. Рассмотрим возможные причины и решения этой проблемы.
1. Важные аспекты разрешения имен
Разрешение имен в Windows происходит в определенном порядке: сначала используется локальный кеш (DNS-кеш), затем DNS-серверы, а также NetBIOS (для работы в локальных сетях).
2. Направления для устранения неполадок
Очистка кеша DNS:
Ваша гипотеза о некорректной работе кеша DNS имеет смысл. Вы можете попробовать очистить кеш DNS с помощью команды:
ipconfig /flushdns
Это позволит сбросить некорректные записи и может помочь в разрешении имен.
Проверка настроек DNS:
Выполните команду:
ipconfig /all
Это даст вам возможность увидеть все настройки вашего сетевого адаптера и DNS-серверы, которые используются. Убедитесь, что ваш компьютер настроен на использование надежного DNS-сервера. Если у вас несколько DNS-серверов, возможно, проблему вызывает тот, который не отвечает.
3. Hotfix с использованием nslookup
Команда nslookup
может недоступно использовать в некоторых ситуациях, поскольку она обращается к первому DNS-серверу из списка. Вы можете указать конкретный DNS-сервер для проверки разрешения имени:
nslookup lexmark 192.168.1.1
Замените IP-адрес на тот, который вы хотите проверить. Это поможет определить, работает ли DNS-сервер корректно.
4. Проверьте настройки NetBIOS
Если ваш компьютер использует NetBIOS для разрешения имен, возможно, конфигурации не настраиваются правильно. Для проверки откройте свойства сетевого подключения и перейдите на вкладку "Дополнительно". Убедитесь, что NetBIOS включен.
5. Проверка сетевых конфликтов
Убедитесь, что на вашем локальном сетевом сегменте нет конфликтующих IP-адресов. Вам может помочь выполнение команды:
arp -a
Она даст вам список всех адресов, с которыми взаимодействует ваш компьютер.
6. Сравнение с Linux
Раз вы указали, что на Linux с теми же настройками всё работает правильно, это может указывать на специфическую проблему в клиенте Windows, опции сетевых протоколов или политике безопасности. Следует проверить, не используются ли определенные ограничения на уровне брандмауэра или антивирусного программного обеспечения в системе Windows.
Заключение
Решение проблемы с разрешением имен в Windows 10, когда ping
не работает, а nslookup
– это многоступенчатый процесс, требующий проверки конфигурации вашей сети. Действия по очистке кеша, проверке кодов DNS и параметров NetBIOS, а также исключение конфликтов в сети должны помочь вам выявить и устранить причины проблемы. Если проблема не решается, возможно, стоит рассмотреть переустановку сетевого адаптера или обновление сетевых драйверов.