Назад | Перейти на главную страницу

Поддельный домен не разрешается в автономном режиме

Я плохо разбираюсь в 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»):

  • Добавьте запись в файл hosts для: 127.0.0.1 localhost.example.com
  • Отключите от сети (отключите кабели newtork, выключите беспроводную
    радио и т. д.)
  • Откройте Google Chrome
  • Перейдите по адресу: chrome: //net-internals/hostresolver.trace
  • Нажмите «Включить трассировку».
  • Откройте новую вкладку на localhost.example.com, чтобы увидеть эту ошибку:

-

Error 105 (net::ERR_NAME_NOT_RESOLVED): The server could not be found.
  • Перезагрузите вкладку chrome: //net-internals/hostresolver.trace. Показывает:

-

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 настроен на разрешение адресов извне перед проверкой своей внутренней базы данных.