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
Ответы
Ответ 1
Я проверяю этот вопрос месяцами, надеясь на ответ. Я считаю, что это поможет, когда 10.10.4 капли: http://arstechnica.com/apple/2015/05/new-os-x-beta-dumps-discoveryd-restores-mdnsresponder-to-fix-dns-bugs/
Apple заменяет findyd на mDNSresponder (как это было раньше)
Ответ 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