я считать это началось с обновлением Snow Leopard. Очистил каталог .ssh, проблема не устранена.
~: uname -a Darwin california-example-com.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386 i386 ~: ssh -V OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009 ~: ls -l ~/.ssh ~: nslookup nevada Server: 10.94.62.3 Address: 10.94.62.3#53 Name: nevada.example.com Address: 10.94.62.3 ~: ssh nevada ssh: Could not resolve hostname nevada: nodename nor servname provided, or not known
Я столкнулся с той же проблемой и нашел ветку о Mac mini имеет проблемы с DNS в обсуждениях Apple, очень полезно.
Суть проблемы: mDNSResponder, кажется, иногда меняет порядок DNS-серверов, которые он запрашивает, поэтому, если он сначала запрашивает DNS-серверы вашего интернет-провайдера, он не получит правильную запись (или, если вы используете разделенный DNS, вы получите ваш публичный IP).
Лучшее решение для этого - убедиться (как и вы), что в ваших настройках DNS указаны только необходимые DNS-серверы. Это может потребовать удаления DNS-серверов ISP из вашего DHCP (как и мне пришлось сделать - все запросы в любом случае перенаправляются через локальный DNS-сервер).
Причина, по которой утилиты любят dig
и nslookup
будет нормально, если они используют BIND и /etc/resolv.conf
прямо в отличие от остальной части операционной системы.
Для справки в Snow Leopard кеш DNS теперь хранится в mDNSResponder, и для его очистки необходимо перезапустить процесс, используя sudo killall -HUP mDNSResponder
. Вы можете получить дополнительную информацию (ведение журнала, внутреннее состояние дампа и т. Д.), Используя разные флаги для killall
команда.
"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.
Источник: Снуп Догг в той же теме.
у нас были такие проблемы:
host example.com <<< WORKED
ping example.com <<< FAILED
Решается примерно так:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Приложения в Mac OS X не используют тот же механизм для DNS, что и «host / dig / nslookup».
Использование «host / dig / nslookup» было полезно для определения, что это не проблема сети. Проблема с локальной системой была решена с помощью приведенных выше команд.
У меня возникла та же проблема… И хотя перезапуск mDNSResponder действительно «работает», перезапускать его пару раз каждый час - отстой.
Итак, пока я "решил" проблему, запустив dnsmasq локально. Для этого:
make
или brew install dnsmasq
)dnsmasq.conf
файл:resolv-file=resolv.conf user=nobody group=nobody interface=lo0 cache-size=1024
resolv.conf
файл, который находится в том же каталоге, что и dnsmasq.conf
файл (nb: не /etc/resolv.conf
):nameserver 8.8.8.8 nameserver 4.2.2.1 nameserver 4.2.2.2
dnsmasq
с участием sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf
. Результат должен выглядеть примерно так:... dnsmasq: reading resolv.conf dnsmasq: using nameserver 4.2.2.1#53 dnsmasq: using nameserver 4.2.2.2#53 dnsmasq: using nameserver 8.8.8.8#53 dnsmasq: read /etc/hosts - 6 addresses
127.0.0.1
единственный DNS-сервер (сетевые настройки -> расширенный -> DNS -> добавить 127.0.0.1)Все должно снова начать работать нормально.
Как только все заработает, вы можете запустить dnsmasq
без --no-daemon
и --log-queries
параметры, поэтому он будет запускаться в фоновом режиме, и вам не нужно держать окно терминала открытым.
Я заметил, что у меня в списке DNS-серверов (панель сетевых настроек) стоит 10.94.62.3, за которым следует 2 от моего интернет-провайдера. Я удалил два других, заставив все поиски имен через 10.94.62.3 для этого местоположения, и теперь я могу разрешать имена в своей сети, а также за ее пределами.
Понятия не имею, почему это сработало.
Думаю, у нас есть аналогичная проблема, как я описал здесь: https://apple.stackexchange.com/questions/50457/nslookup-works-ping-and-ssh-dont-os-x-lion-10-7-3
Я считаю, что проблема заключается в конфигурации searchdomains: ping / ssh пытается использовать gethostbyname2()
что не удается, потому что named больше не работает (по крайней мере, в Lion) и /etc/resolv.conf
с настроенными доменами поиска игнорируется. /etc/hosts
последнее средство для gethostbyname2()
и поэтому ssh снова работает с правильными записями в /etc/hosts
. Должен быть исправлен Apple imho.
Вы пробовали nevada-example-com.local?
dscacheutil -flushcache
Эта команда обновляет ваш кеш DNS.
Вы доверяете 10.94.62.3 DNS-серверу? Если да, то почему только один? У вас должно быть как минимум 2 DNS-сервера, к которым можно обращаться в целях аварийного переключения. Если тот выйдет из строя, вы - сидячая утка.
Поиск по порядку DNS в Snow Leopard работает иначе. Если вы не можете найти домен, проверьте, есть ли у вас недопустимые DNS-серверы, перечисленные в ваших сетевых настройках. Если вы используете стандартную настройку DHCP, у вас не должно быть в списке DNS-серверов. До обновления у меня был в списке старый DNS-сервер, и он ни на что не влиял. После обновления я полностью потерял DNS.
Откройте «Сетевые настройки»> «Выберите аэропорт»> «Дополнительно». Выберите вкладку DNS и удалите все недействительные DNS-серверы.
Вы смотрели Консоль? (Приложения -> Утилиты -> Консоль) Вы можете обнаружить, что mDNSResponder отображается в разделе: Информация о диагностике и использовании -> Отчеты о диагностике системы
Если он вылетает из-за другой программы, которая загружает модули (например, Little Snitch или Hands Off), вы можете увидеть это там.
У меня была та же проблема с nslookup, разрешающим мой ящик Windows, но ping давал мне «неизвестный хост». Я попробовал то, что предлагал Navdeep, и пошел, чтобы очистить серверы имен во вкладке Network Preferences-> Advanced-> DNS. Это не позволило мне вычесть их, они были неактивны. Я наконец нажал на +, и они исчезли. Я отменил добавление нового и применил изменения, поскольку DNS-серверы не отображались. Пинг после этого заработал. Странно то, что мой локальный маршрутизатор / DHCP-сервер был первым в списке и именно он отвечал за разрешение окна Windows. Должно быть что-то странное с порядком. Другой указанный сервер имен является рабочим NS и не сможет разрешить хост Windows. СПАСИБО Navdeep!