Я установил, настроил DNS-сервер (локальный экземпляр Dnsmasq), который разрешает localhost, как я хочу, все в порядке.
Когда я перехожу в автономный режим, он перестает работать, потому что OS X очищает содержимое resolv.conf и игнорирует попытку отразить изменения в этом файле.
Есть идеи, как настроить DNS даже в автономном режиме?
Аналогичная проблема (не решена): http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites
Основная мотивация - легкость разработки приложения RoR, которое использует субдомены в качестве ключей аккаунта. И вы не можете использовать 127.0.0.1 * .yourapp.local в / etc / hosts. Какой-то парень зарегистрировал домен smackaho.st и srt DNS для него, например .smackaho.st на 127.0.0.1, но, тем не менее, вы не можете использовать его, когда работаете в автономном режиме.
РЕДАКТИРОВАТЬ: пробовал команду scutil, но, кажется, вы можете изменить DNS, если в автономном режиме
ПРИМЕЧАНИЕ: когда у вас отключены все интерфейсы, вы не можете установить DNS-серверы в Pref. панель.
источник
Ответы:
СМОТРЕТЬ ОБНОВЛЕНИЕ НИЖЕ!
Мне также нравится использовать Dnsmasq на моей локальной машине, и у меня тоже была эта проблема. Вот решение:
От
man 5 resolver
:/etc/resolver/
нет по умолчанию; Вы должны создать это самостоятельно.Также со страницы руководства:
Поэтому, если вы хотите, чтобы все DNS-запросы для домена верхнего уровня
dev
перенаправлялись на локальный сервер имен, вы должны:configd
не изменяет файлы/etc/resolver/
, поэтому этот параметр будет сохраняться при изменениях и перезагрузках сети.ОБНОВЛЕНИЕ 17 июля 2012
К сожалению, что касается OS X Lion, верхний распознаватель (как показано
scutil --dns
) исчезает, когда нет активных интерфейсов:Обратите внимание, что распознаватель # 1 пуст, но запись, полученная из / etc / resolver, остается.
Оказывается, поскольку вы можете указать домен резолвера непосредственно в файле / etc / resolver /, указание специального корневого домена Интернета
.
вызывает создание глобальной записи резолвера, которая выглядит следующим образом:Теперь все DNS-запросы направляются на локальный хост, даже в автономном режиме.
Конечно, вам все равно придется разрешить выбранные домены как 127.0.0.1, используя что-то вроде опции --address в dnsmasq:
В итоге:
ср http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
источник
scutil --dns
когда не подключен к Интернету, все, что я получаю, это то, чтоNo DNS configuration available
яПочему бы не сделать записи в / etc / hosts? У меня возникли проблемы при мысли о ситуации, когда вам действительно нужно будет запустить полноценный DNS-сервер. Я все время использую записи файла хоста для выполнения подобных задач на своих компьютерах Mac.
Средство распознавания в OS X работает иначе, чем в Linux или других Unixes. Это, вероятно, часть того, что вызывает у вас горе. Как, например, у него есть предпочтения, какой метод разрешения использовать в первую очередь, и он кэширует результаты всех запросов в течение определенного периода времени.
Вы добавили DNS-сервер к интерфейсу на панели настроек сети? Это должно гарантировать, что распознаватель использует этот сервер для своих запросов, если он решит искать запись DNS.
источник
(отвечая на б / к, я пока не могу комментировать ...)
Как вы идете в автономном режиме?
(лучший ответ, который я получил прямо сейчас)
Таким образом, вы должны быть в состоянии ввести что-то в пользовательском интерфейсе, и это должно придерживаться. Я делал это пару раз, когда мне не нравился DNS-сервер, который предоставляет мой локальный DHCP-сервер.
источник
Есть ли в OSX файл конфигурации /etc/dhcp3/dhclient.conf, который есть в обычных конфигурациях DHCP-клиентов Linux / UNIX?
Если так, то должна быть строка, которую вы можете раскомментировать
чтобы клиент DHCP всегда добавлял эту строку в ваш resolv.conf
источник
Попробуйте добавить вторую службу Ethernet, настроенную со статическим адресом и 127.0.0.1 в качестве DNS-сервера. Или добавьте сетевое расположение, которое устанавливает DNS-сервер на 127.0.0.1. Оба эти изменения будут внесены в «Системные настройки» на панели «Сеть».
источник
Это может помочь просто поставить
в / etc / hosts, поэтому для поиска localhost не требуется распознаватель.
источник