Я плохо разбираюсь в DNS. Тем не менее, чтобы установить локальную копию Wordpress MU для разработки, мне нужно было создать поддельный домен, который я назвал local.dev. Он и все поддомены просто разрешаются до 127.0.0.1. Затем Apache направляет в правильную папку.
Я установил PowerDNS и заставил его правильно работать с серверной частью MySQL. Мне было не по себе, но, поскольку это сработало, я больше не задавал вопросов. Странно то, что для правильного разрешения требуется подключение к Интернету, и теперь мне нужно использовать его в автономном режиме.
Если я не в сети, Chrome выдает ошибку:
Error 105 (net::ERR_NAME_NOT_RESOLVED): The server could not be found.
/ etc / hosts
127.0.0.1 localhost
/etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.8.4
Когда копаю, получаю одно и то же, как в автономном режиме, так и в сети:
dig local.dev
; <<>> DiG 9.6.1-P2 <<>> local.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10635
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;local.dev. IN A
;; ANSWER SECTION:
local.dev. 120 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Apr 22 15:32:51 2010
;; MSG SIZE rcvd: 43
nslookup в любом случае не находит local.dev
nslookup local.dev
;; Got recursion not available from 127.0.0.1, trying next server
;; Got recursion not available from 127.0.0.1, trying next server
Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find local.dev: NXDOMAIN
Конфигурация PowerDNS (комментарии удалены):
allow-recursion=127.0.0.1
allow-recursion-override=on
Если вам нужна дополнительная информация, я с радостью ее предоставлю.
Забудьте о PowerDNS. Просто добавьте необходимые записи в свой файл hosts. Что-то вроде этого:
127.0.0.1 local.dev
Если у вас небольшое количество поддоменов, это намного проще, чем пытаться поддерживать службу DNS.
Я просто заметил, что это происходит и с нами. У меня есть записи для нескольких проектов (~ 30), над которыми я работаю. НАПРИМЕР.:
127.0.0.1 localhost.example.com
127.0.0.1 localhost.mydomain.com
127.0.0.1 localhost.some-other-project.net
...и так далее.
Когда я не подключен к сети, я не могу разрешить эти имена в Google Chrome. Прекрасно работает в Firefox и Lynx. Я могу пинговать localhost.example.com нормально. Похоже, что HostResolver Google Chrome отказывается использовать файл hosts.
Я использую Gogole Chrome 5.0.357.53 на Ubuntu 10.04. (Но быстрый поиск в Google показывает, что это происходит и в Windows)
Выполните следующие действия для воспроизведения (требуется веб-сервер, работающий на localhost и отвечающий на «localhost.example.com»):
-
Error 105 (net::ERR_NAME_NOT_RESOLVED): The server could not be found.
-
t=2085005: "Received request r608 for {hostname='localhost.example.com', port=80, priority=1, speculative=1, address_family=0, allow_cached=1, referrer=''}"
t=2085005: "Created job j325 for {hostname='localhost.example.com', address_family=1}"
t=2085005: "Attached request r608 to job j325"
t=2085005: "Starting job j325"
t=2085005: "[resolver thread] Running job j325"
t=2085006: "[resolver thread] Completed job j325"
t=2085006: "Completing job j325 (took 0 milliseconds)"
t=2085006: "Finished request r608 with error=-105"
t=2085207: "Received request r609 for {hostname='clients1.google.com', port=80, priority=3, speculative=0, address_family=0, allow_cached=1, referrer=''}"
t=2085207: "Created job j326 for {hostname='clients1.google.com', address_family=1}"
t=2085207: "Attached request r609 to job j326"
t=2085207: "Starting job j326"
t=2085207: "[resolver thread] Running job j326"
t=2085207: "[resolver thread] Completed job j326"
t=2085207: "Completing job j326 (took 0 milliseconds)"
t=2085207: "Finished request r609 with error=-105"
t=2085869: "Received request r610 for {hostname='localhost.example.com', port=80, priority=0, speculative=0, address_family=0, allow_cached=1, referrer=''}"
t=2085869: "Finished request r610 with error=-105"
t=2085889: "Received request r611 for {hostname='linkhelp.clients.google.com', port=80, priority=2, speculative=0, address_family=0, allow_cached=1, referrer=''}"
t=2085889: "Created job j327 for {hostname='linkhelp.clients.google.com', address_family=1}"
t=2085889: "Attached request r611 to job j327"
t=2085889: "Starting job j327"
t=2085889: "[resolver thread] Running job j327"
t=2085889: "[resolver thread] Completed job j327"
t=2085889: "Completing job j327 (took 0 milliseconds)"
t=2085889: "Finished request r611 with error=-105
Похоже, вам либо нужна запись локальных хостов для вашего DNS-сервера, либо ваш PowerDNS настроен на разрешение адресов извне перед проверкой своей внутренней базы данных.