Я понял из комментариев, что nslookup работает, даже если ваш Mac все еще настроен на использование прокси-сервера DNS вашего маршрутизатора на 192.168.1.1? Если это так, то посмотрите, работает ли другой путь кода для распознавателя DNS в Mac OS X, выполнив запрос DNS с помощью инструмента dns-sd
:
dns-sd -Q www.google.com
(Вам придется нажать Ctrl-C из этой команды, как только вы получите результаты или решите отказаться)
Если dns-sd
не может разрешить имена хостов, а традиционные инструменты Unix, такие как nslookup
/dig
/host
могут, то демон mDNSResponder
, вероятно, подключен и должен быть перезапущен:
sudo killall mDNSResponder
NB: Не просто HUP, действительно убейте его и дайте launchd
автоматически перезапустить его. Я видел, что mDNSResponder не в состоянии отсоединить себя только с помощью HUP.
Обновление: если приведенные выше команды не работают (и учтите, что все в них чувствительно к регистру), то mDNSResponder, вероятно, не работает, либо аварийно завершает работу, либо преждевременно завершает работу при каждом запуске. Используйте консольную утилиту (/Applications/Utilities/Console.app
), нажмите кнопку "Показать список журналов" и выберите поток журнала "Все сообщения". Ищите сообщения от launchd
или mDNSResponder
которые могут указывать, почему mDNSResponder испытывает проблемы с запуском и продолжением работы. Посмотрите также в категории "Отчеты о диагностике системы" в списке журналов, чтобы увидеть, есть ли отчеты о сбоях от mDNSResponder.
Возможно, ваш двоичный файл mDNSResponder каким-то образом поврежден и требует переустановки. Вы можете либо переустановить ту же версию Mac OS X на месте (которая по умолчанию выполняет ремонтную установку и оставляет ваши файлы на месте, но вы никогда не будете слишком осторожны, поэтому сначала убедитесь, что резервные копии работают в любом случае), или вы можно попробовать скопировать сам бинарный файл mDNSResponder с другого компьютера, на котором установлена точно такая же версия и сборка Mac OS X. Перейдите в меню [Apple] -> Об этом Mac, посмотрите номер версии, затем щелкните его один раз, чтобы увидеть номер сборки. , Или перед тем, как скопировать его, вы можете проверить контрольную сумму двоичного файла на обеих машинах следующим образом:
$ md5 /usr/sbin/mDNSResponder
MD5 (/usr/sbin/mDNSResponder) = 205d44c2b62b8b8c2cef5b84e6da7c79
Это контрольная сумма из моей копии в Mac OS X v10.6.8 build 10K540.
Я полагаю, что также возможно, что mDNSResponder может иметь поврежденный файл конфигурации / plist или файл кэша или что-то, из-за чего он задыхается, но я обычно не думаю, что mDNSResponder имеет такие вещи.