Вопрос объясняет проблему. В течение многих месяцев у меня никогда не было проблем в этом направлении. Затем, вчера утром, я не мог попасть в свою виртуальную машину! Потребовалось много времени для устранения неполадок, но здесь было решение:

Brendans-Mac-mini:~ Brendan$ ssh -p 3022 user@localhost
ssh: Could not resolve hostname localhost: nodename nor servname provided, or not known
Brendans-Mac-mini:~ Brendan$ ssh -p 3022 user@127.0.0.1
user@127.0.0.1's password: 
Last login: Tue Jul  1 22:37:59 2014 from 10.0.2.2

Итак, почему это произошло, и что более важно, как я могу это исправить?

Я попробовал dig localhost , который, кажется, говорит мне, что между localhost и 127.0.0.1 все еще есть какая-то связь:

Brendans-Mac-mini:~ Brendan$ dig localhost

; <<>> DiG 9.8.3-P1 <<>> localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28989
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;localhost.         IN  A

;; ANSWER SECTION:
localhost.      655360  IN  A   127.0.0.1

;; Query time: 7 msec
;; SERVER: 10.0.1.1#53(10.0.1.1)
;; WHEN: Wed Jul  2 09:44:44 2014
;; MSG SIZE  rcvd: 43

1 ответ1

1

localhost обычно определяется в файле /etc /hosts, а не в DNS (хотя в вашем DNS есть запись для аварийного резервного копирования). Вот нормальное содержимое /etc /hosts в OS X (как у Mavericks):

##
# 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

Обратите внимание, что если вам нужно отредактировать / воссоздать этот файл, он должен быть в простом текстовом формате (без форматирования вообще), с окончанием строки в стиле Unix (переводом строки). Вы можете использовать редактор командной строки, такой как vi или nano ; если вам нужен редактор с графическим интерфейсом, я бы порекомендовал TextWrangler или его старшего брата BBEdit для редактирования файлов, подобных этому, так как они хороши в том, что не добавляют ложные "полезные" вещи в редактируемые файлы, а также могут использовать права администратора для редактирования. системные файлы (например, / etc / hosts).

(Кроме того, это не очень заметно или важно, но это символы табуляции между адресами и именами.)

Для тестирования подобных поисков используйте dscacheutil (dscacheutil -q host -a name localhost) вместо чего-то вроде dig . Причина использования dscacheutil заключается в том, что dighost и nsloogup) обходит политику поиска системы и просто проверяет DNS напрямую, тогда как dscacheutil использует полную политику поиска системы. В результате, dig не увидит записи в /etc /hosts, не выполнит поиск mDNS (Bonjour), не найдет записи компьютера в службах каталогов, не увидит кэшированные записи из предыдущих поисков или ...

Когда у вас правильно настроен файл hosts, вот как должен выглядеть вывод dscacheutil :

$ dscacheutil -q host -a name localhost
name: localhost
ipv6_address: ::1
ipv6_address: fe80:1::1

name: localhost
ip_address: 127.0.0.1

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