3

По какой-то причине псевдонимы для моего localhost Mac OS X, похоже, внезапно перестали работать. Предположительно следуют некоторые обновления, вызвавшие это, хотя я не уверен, что.

Вот мой файл hosts:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost


127.0.0.1 ian.dev
127.0.0.1 d8.dev

Несмотря на то, что ian.dev находится на 127.0.0.1, когда я отлаживаю с помощью dscacheutil -q host -a name ian.dev я получаю:

name: ian.dev
ip_address: 127.0.53.53

Сам localhost работает, и я также могу получить доступ к подпапкам внутри localhost, но любые новые псевдонимы, кажется, всегда указывают на этот IP, а не 127.0.0.1.

2 ответа2

1

Нашел возможное исправление из этого ответа о переполнении стека.

Кажется, мой файл hosts был как-то поврежден. Ряд команд для очистки файла закончил тем, что исправил это:

tr '\015' '\012' < /etc/hosts > /tmp/hosts.$$
mv /etc/hosts /etc/hosts.bad
mv /tmp/hosts.$$ /etc/hosts
# fix up permissions while we are at it
chown root:wheel /etc/hosts
chmod 644 /etc/hosts
0

Когда IP-адрес возвращает 127.0.53.53 когда существует потенциальная проблема конфликта имен, как описано здесь в официальной документации ICANN:

127.0.53.53 - это специальный IPv4-адрес, который будет отображаться в системных журналах, предупреждая системных администраторов о возможной проблеме конфликта имен, обеспечивая возможность быстрой диагностики и устранения неполадок. "53" используется как мнемоника для обозначения проблемы, связанной с DNS, вследствие использования сетевого порта 53 для службы DNS.

Зная это, я полагаю, что проблема заключается в том, что у вас есть две записи с подключенным к ним .dev ; ian.dev и d8.dev . Я думаю, что DNS-преобразователь в системе видит .dev , пытается добавить .dev в зону .local которая является традиционным localhost «TLD». И это просто душит по какой-то причине. Или, может быть, он пытается разрешить .dev в реальном мире и считает, что ваша локальная установка .dev является конфликтом с реальным доменом верхнего уровня .dev ?

Я предполагаю, что вы делаете это для своего рода разработки виртуального хоста Apache на вашей машине. Если это так, посмотрите, что произойдет, если вы измените эти псевдонимы, чтобы удалить точку (.), Чтобы они стали такими : ian_dev и d8_dev . Или, может быть, измените их на ian.local и d8.local`.

На настройку среды разработки может уйти много времени, но я считаю, что она должна работать.

За исключением этого, вы можете сделать что-то более инвазивное на системном уровне, что может сработать. Идея исходит из этого ответа о сбое сервера. Просто откройте файл DNS resolv.conf следующим образом:

sudo nano /etc/resolv.conf

И добавьте следующую строку options в конец файла:

options ndots:2

Это может также сработать. Более подробная информация с этого сайта. Кроме того, если у вас есть resolv.conf , вы можете проверить, есть ли там какие-то другие настройки, которые портят работу. Например, вот содержимое моего resolv.conf:

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
nameserver 208.67.220.222
nameserver 208.67.220.220

Единственные две записи, которые у меня есть, предназначены для namservers OpenDNS. Ничего больше. Если у вас есть что-то большее, чем записи на nameserver - или, может быть, даже не так много; Ваша конфигурация может быть пустой - тогда я бы порекомендовал закомментировать эти записи и посмотреть, что произойдет.

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