Yosemite localhost resolver и dnsmasq не работают в автономном режиме

Установите мою локальную среду, похожую на этот пост, и все работает нормально, но в последнее время я не могу получить доступ к своим локальным доменам dev, когда я не в сети. Когда я подключен к Интернету, он работает нормально. Мне интересно, изменилось ли что-то с использованием резольвера в Йосемити. Кажется, что правила распознавателя игнорируются, если я в автономном режиме.

dnsmasq.conf:

address=/.dev/127.0.0.1
listen-address=127.0.0.1

/и т.д./резольвер/DEV

 nameserver 127.0.0.1

Когда онлайн:

ping -c 1 mydomain.dev
PING mydomain.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.038 ms

--- mydomain.dev ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.038/0.038/0.038/0.000 ms

scutil --dns
resolver #1
search domain[0] : nomadix.com
nameserver[0] : 203.124.230.12
nameserver[1] : 202.54.157.36
if_index : 4 (en0)
flags    : Request A records
reach    : Reachable

resolver #2
domain   : dev
nameserver[0] : 127.0.0.1
flags    : Request A records, Request AAAA records
reach    : Reachable,Local Address

в автономном режиме:

ping -c 1 mydomain.dev
ping: cannot resolve mydomain.dev: Unknown host

scutil --dns
No DNS configuration available

Ответ 2

OSX Yosemite + resolver + dnsmasq offline === resolved!!

когда вы находитесь в автономном режиме на каждом интерфейсе на вашем компьютере, , но 127.0.0.1, снижается.

поэтому, если вы хотите иметь разрешение dns, ваш DNS-сервер должен прослушать 127.0.0.1. В моем случае это dnsmasq, который я выбираю, потому что вам не нужно быть администратором sys, чтобы он работал, и он делает!

после этих простых шагов я получил его работу:

1) brew установить dnsmasq

2) cp/usr/local/opt/dnsmasq/dnsmasq.conf.example/usr/local/etc/dnsmasq.conf

если я не правильно установлен в /usr/local/opt, вы должны иметь возможность читать в brew строках отладки установки примерно так:

make install PREFIX =/usr/local/Cellar/dnsmasq/2.72

в этом случае выполните следующую команду:

ln -s/usr/local/Cellar/dnsmasq/2.72/usr/local/opt/dnsmasq

а затем вернуться к шагу 2

3) vi/usr/local/etc/dnsmasq.conf

и добавьте свои домены, например:

address=/foo.dev/192.168.56.101

где в этом случае каждый url заканчивается на foo.dev(http://www.foo.dev, http://foo.dev, http://what.ever.you.want.foo.dev и т.д.) будет разрешен как 192.168.56.101 (это вид ip у вас есть Virtualbox, 192.168.56. *)

4) sudo launchctl load/Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

5) попробуйте, прежде чем поместить его в распознаватель

nslookup foo.dev 127.0.0.1

и ожидаем этого:

Server:  127.0.0.1
Address:     127.0.0.1#53
Name:    foo.dev
Address: 192.168.56.101

6) mkdir -p/etc/resolver

vi/etc/resolver/dev

добавьте эти две строки:

nameserver 127.0.0.1
search_order 1

7) ping foo.dev или hint http://foo.dev или http://so.cool.foo.dev в адресной строке вашего браузера, и вам хорошо идти!!!

8) Будь счастлив! Вы можете работать в автономном режиме СНОВА!!!!

Ответ 3

Проблема в том, что вы находитесь в автономном режиме, вы должны указать resolver для корневого домена. ': Когда мы ищем www.google.com Eсть "." (корневой домен) автоматически добавляется в конце, например: www.google.com.

Итак, все, что вам нужно сделать, это:

Установите все DNS-серверы сетевого интерфейса на 127.0.0.1:

networksetup -setdnsservers Ethernet 127.0.0.1

networksetup -setdnsservers Wi-Fi 127.0.0.1

...

Создайте файл /etc/resolver/whatever:

nameserver 127.0.0.1
domain .

Подробнее см. question