Все шаги по настройке и преобразованию subdomain.localhost в 127.0.0.1?

Все шаги по настройке и преобразованию subdomain.localhost в 127.0.0.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 маршрутизатора в моей локальной сети. Похоже, что файл hosts localhost пропускается для разрешения в этом случае. Раньше процесс develop2win.deуспешно разрешался и указывал на локальный виртуальный хост Apache. Но теперь даже это больше не работает, та же ошибка, что и выше (WTF?). Однако поиск по plain 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)

Пингование 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не удается найти localhost.

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

решение1

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

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

Связанный контент