1

Я внезапно чувствую себя упрямым из-за того, что мой поддомен на localhost не работает. Мой файл /etc/hosts выглядит так:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1   develop2win.de
127.0.0.1   develop2win.de

127.0.0.1   alomvar.localhost

Размещение всех имен хостов для одного IP-адреса в одной строке также не работает:

127.0.0.1   localhost alomvar.localhost develop2win.de www.develop2win.de

Я также перезапустил преобразователь DNS, подходящий для OS X 10.9 Mavericks, с помощью следующей команды:

dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Но выдача nslookup alomvar.localhost на терминале приводит к следующему:

Server:     192.168.178.1
Address:    192.168.178.1#53

** server can't find alomvar.localhost: NXDOMAIN

Это IP роутера в моей локальной сети. Похоже, что файл localhost hosts пропускается для разрешения в этом случае. Перед тем как процесс develop2win.de был успешно решен и указан локальный виртуальный хост Apache. Но теперь даже это не работает, ошибка та же, что и выше (WTF?). Тем не менее, поиск простого localhost работает нормально, все же:

Server:     192.168.178.1
Address:    192.168.178.1#53

Name:   localhost
Address: 127.0.0.1

Обновление 1: я тоже сделал перезагрузку без изменений. Похоже, что DNS-запросы вообще не разрешаются локально, а вместо этого отправляются на мой маршрутизатор.

Что мне не хватает? Кто-то еще пытался настроить поддомен для localhost на OS X Mavericks? Это даже не о Apache, а просто вопрос DNS.

Вот скриншот моей конфигурации DNS в системных настройках, кстати. Поскольку у меня пока недостаточно репутации для встраивания изображений, это ссылка на внешний сайт.

Обновление 2: я выполнил проверки с помощью команд host и ping в терминале, как указал dave_thompson_085. Для localhost это работает нормально:

$ host localhost
localhost has address 127.0.0.1

Но для поддоменов нет

$ host alomvar.localhost
Host alomvar.localhost not found: 3(NXDOMAIN)

Pinging localhost тоже работает нормально:

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.076 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.048/0.072/0.085/0.014 ms

А теперь, что раздражает, так работает и для поддоменов:

$ ping alomvar.localhost
PING alomvar.localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.091 ms
^C
--- alomvar.localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.039/0.062/0.091/0.022 ms

Как я могу пинговать без проблем, но не разрешить поддомен? Очевидно, это должно работать так, когда я смотрю, как другие люди делают это в Интернете. Я не кряк относительно сетей. Я, вероятно, сломал что-то еще, кроме того, что непосредственно необходимо для его настройки.

Я также выполнил dig на localhost и поддомене. Вывод довольно длинный, и я думаю, что этот вопрос уже достаточно загроможден. Смотрите этот файл для копать вывод.

Обновление 3: при отключении моего Mac от сети (отключение сетевого адаптера Ethernet) dig и host не удается найти локальный хост тоже.

Обновление 4: я обнаружил, что в браузерах работает виртуальный хост Apache, который прослушивает так называемый хост. Это не решение проблемы, а обстоятельство, с которым я могу жить и работать. Тем не менее, я все еще заинтересован в решении вопроса. Если у кого-нибудь есть идеи, скажите мне.

1 ответ1

2

dig , host и nslookup обходят распознаватель имен систем и напрямую запрашивают DNS. Таким образом, они не будут видеть имена , определенные в / и т.д. / хостов (если они не определены также в службе DNS) или любой MDNS (ака Bonjour) .local имен, или записи компьютера в службах каталогов, или ...

Если вы хотите увидеть то, что видит системный преобразователь, лучшим инструментом является dscacheutil . К сожалению, его синтаксис довольно неуклюжий (dscacheutil -q host -a name alomvar.localhost), поэтому, как правило, быстрее использовать что-то вроде ping , использующее преобразователь имен системы. Но если вам нужны полные сведения (например, разрешается ли имя по нескольким адресам), вам стоит использовать dscacheutil .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .