ВИДАЙТЕ ОНОВЛЕННЯ НИЖ!
Мені також подобається використовувати Dnsmasq на моїй локальній машині, і у мене теж була ця проблема. Ось рішення:
Від man 5 resolver
:
The configuration for a particular client may be read from a file
having the format described in this man page. These are at present
located by the system in the /etc/resolv.conf file and in the files
found in the /etc/resolver directory.
/etc/resolver/
за замовчуванням не присутній; ви повинні створити його самостійно.
Також зі сторінки чоловіка:
domain
Domain name associated with this resolver configuration. This
option is normally not required by the Mac OS X DNS search system
when the resolver configuration is read from a file in the
/etc/resolver directory. In that case the file name is used as the
domain name.
Отже, якщо ви хочете, щоб усі запити dns для домену верхнього рівня dev
маршрутизовано до локального сервера імен, ви:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
не змінює файли /etc/resolver/
, тому це налаштування зберігатиметься через зміни мережі та перезавантаження.
ОНОВЛЕННЯ 17 липня 2012 року
На жаль, що стосується OS X Lion, верхній роздільний пристрій (як показано на малюнку scutil
--dns
) зникає, коли інтерфейси не активні:
# scutil --dns # Online
DNS configuration
resolver #1
nameserver[0] : 127.0.0.1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
# scutil --dns # Offline
DNS configuration
resolver #1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
Зауважте, що роздільник №1 порожній, але що вхід / сервер / імені / посилання, що походить з роздільника, залишається.
Виявляється, оскільки ви можете вказати домен reslaver безпосередньо у файлі / etc / resolutionver /, вказівка спеціального кореневого домену в Інтернеті .
спричиняє створення глобальної записи резолюції, яка виглядає так:
resolver #8
nameserver[0] : 127.0.0.1
Тепер усі запити DNS перенаправляються до localhost, навіть у режимі офлайн.
Звичайно, вам все одно доведеться вирішити вибрані вами домени як 127.0.0.1, використовуючи щось на зразок dnsmasq -адрес адреси:
# dnsmasq --address=/dev/127.0.0.1
Підсумовуючи:
- Встановіть для всіх ваших мережевих інтерфейсів dns серверів 127.0.0.1:
networksetup -setdnsservers Ethernet 127.0.0.1
networksetup -setdnsservers Wi-Fi 127.0.0.1
...
- Створіть файл / etc / resolutionver / що завгодно:
сервер імен 127.0.0.1
домен.
- Налаштуйте локальний DNS-сервер і будьте раді.
пор. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c