Если я пропущу свой файл resolv.conf, я увижу следующее сообщение:
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
Я пытаюсь добавить запись DNS. Я отредактировал свой файл hosts и очистил кеш DNS, но имя не разрешается, если я использую host servername
. Я подумал, возможно, что host
не был настроен на просмотр hosts
файл. Как я могу разрешить мою новую запись и что использует OSX, если нет resolv.conf
?
DNS-преобразователи могут быть добавлены в OS X через networksetup
команда:
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4
При необходимости введите имя сетевого подключения. Эти преобразователи появятся в resolv.conf, поскольку он создается автоматически, но прямое редактирование файла resolv.conf не приведет к использованию этих преобразователей. Я предполагаю, что резолверы хранятся где-то в списке; Я буду искать и доложу.
Отредактировано для добавления: похоже, что файл XML plist, в котором хранятся DNS-серверы, /Library/Preferences/SystemConfiguration/preferences.plist
.
Файл хоста в / private / etc / hosts должен работать для принудительного разрешения определенных имен (/ etc - это символическая ссылка на / private / etc). Можете ли вы проверить свой синтаксис и то, что вы редактируете правильный файл?
Хост-инструмент не просто разрешить имена (например, используя преобразователь имен системы), но на самом деле запрашивает DNS-серверы (например, отправка пакетов на udp / 53 и, возможно, на tcp / 53): он не знает и не использует локальный hosts
файл.
Если вы хотите протестировать распознаватель операционной системы (например, gethostbyname () и аналогичные функции libc), вы можете попробовать проверить связь с именем, которое вы добавили в /etc/hosts
и он будет учитывать то, что вы поместили в этот файл.
Кроме того, как вы уже узнали, поиск DNS в Mac OSX не использует /etc/resolv.conf
, и правильный способ настройки запрашиваемых DNS-серверов находится в графическом интерфейсе сетевых настроек и / или networksetup
инструмент командной строки. Честно говоря, я не знаю, можете ли вы настроить порядок, в котором проверяются источники, но стандартное поведение - попробовать /etc/hosts
первый и днс сервера после этого.