9

У меня есть сервер под управлением OS X Server 10.5, и он не может разрешить localhost до 127.0.0.1.

Когда я пытаюсь пинговать, вот что происходит:

> ping localhost
ping: cannot resolve localhost: Unknown host

SSH и веб-браузеры получают аналогичные результаты (неизвестный хост). Если я пытаюсь использовать 127.0.0.1 или IP-адрес, назначенный в локальной сети, все вышеперечисленное работает.

Вот содержимое моего файла /etc /hosts:

> cat /etc/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

У меня не работает локальная служба DNS.

У кого-нибудь есть идеи, почему это может происходить или как я могу это исправить?

10 ответов10

5

У меня была такая же проблема с Горным Львом (10.8.2). Я решил это, отключив "Режим невидимости" в разделе "Безопасность и конфиденциальность" -> "Брандмауэр" -> "Параметры брандмауэра".

3

Вероятно, это не связано с вашим первоначальным вопросом, но есть еще одна проблема, которая может повлиять на поиск DNS в Mac OS X Lion, в частности localhost или любые другие записи, которые вы можете иметь в /etc/hosts .

Очевидно, файл /etc/hosts больше не поддерживает несколько доменов на строку в файле, поэтому каждая запись нуждается в отдельной строке:

127.0.0.1 localhost
127.0.0.1 some.site.local
127.0.0.1 some.site.dev

Нашел это через блог Джастина Кармони. Он продолжает описывать другое "интересное" поведение, если вы используете /etc/hosts , так что читайте, если у вас все еще есть проблемы.

1

На моем компьютере (те же симптомы) мой файл /etc/hosts был зарезервирован для использования концов строк Macintosh (0x13) вместо концов строк Unix (LF - 0x10). В противном случае файл был верным.

Мое решение было:

brew install dos2unix
sudo dos2unix -c mac /etc/hosts
1

Кодирование может быть проблемой, я отредактировал файл /etc /hosts с помощью Sublime Text, что привело меня к проблеме, и, переиздав его с помощью vi, решило проблему. убедитесь, что cat выводит содержимое.

1

Я знаю, что уже немного поздно, но в моем случае изменив окончание строк на UNIX, заменив табуляции пробелами и сохранив файл, так как UTF-8 заставил его работать на Mountain Lion (10.8.2)

Надеюсь, что эта работа для кого-то еще.

0

Я отредактировал мой /etc /hosts с помощью Sublime Text, и у меня возникла та же проблема, попробуйте отредактировать и сохранить ваш файл /etc /hosts с помощью vi или nano, который исправил это для меня ...

0

В конце концов, он снова начал работать. Я нашел некоторую неортодоксальную (и ненужную) конфигурацию DNS на сервере и изменил ее на то, что должно было быть, и, возможно, это решило проблему? Я не могу быть уверен, потому что я не пытался решить проблему с localhost в то время, и поэтому я не проверял localhost до и после.

0

У меня та же проблема. Я только что установил новый ноутбук Mac, и он работал, пока я не перешел со старого. Теперь ping localhost не может разрешиться. Должно быть, какая-то обстановка у меня где-то меняется, но я не знаю где ...

Я обнаружил, что "пинг localhost". работает. Добавление конечной точки предназначено для обхода поиска имени "localhost" в других поисковых доменах. Это круто, но я до сих пор не понимаю, почему не работает запись /etc /hosts ...

редактировать: решено.

bash-3.2# dscl . read /Hosts/localhost    
AppleMetaNodeLocation: /Local/Default
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# ping localhost
ping: cannot resolve localhost: Unknown host
bash-3.2# dscl . append /Hosts/localhost IPAddress 127.0.0.1
bash-3.2# dscl . read /Hosts/localhost
AppleMetaNodeLocation: /Local/Default
IPAddress: 127.0.0.1
RecordName: localhost
RecordType: dsRecTypeStandard:Hosts
bash-3.2# 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.083 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.140 ms

вуаля!

Каким-то образом запись службы каталогов была не синхронизирована с файлом /etc /hosts. И когда в конфигурации служб каталогов нет IP-адреса, попытка разрешить имя переходит к mDNSResponder, который запрашивает DNS.

0

Всегда обращайте внимание на журнал ошибок Apache, потому что не все ошибки выбрасываются в консоли при запуске службы. Могут быть проблемы, даже если синтаксис в порядке.

По умолчанию они должны храниться в /var /log /apache2 /, а файл журнала - error.log.

У меня была точно такая же проблема, что хост мог быть решен, и apache не сообщил о проблеме в консоли. Простая "проблема" заключалась в том, что error.log, определяющий мою vhost-конфигурацию, не мог быть создан после замены внешнего диска.

-1

Удалите файл hosts и посмотрите, что будет потом. Также перезагрузите компьютер без подключения к сети.

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