Die Frage erklärt das Problem. Seit Monaten hatte ich nie irgendwelche Probleme in dieser Richtung. Dann kam ich gestern Morgen nicht in meine VM! Die Fehlersuche hat lange gedauert, aber hier ist die Lösung:
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
Also, warum sollte das passiert sein, und was noch wichtiger ist, wie kann ich es beheben?
Ich habe versucht dig localhost
, was mir zu sagen scheint, dass es immer noch eine Art Verbindung zwischen localhost und 127.0.0.1 gibt:
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
[Dies ist kopiert und leicht erweitert von meiner Antwort auf Superuser .]
localhost ist normalerweise in der Datei /etc/hosts definiert, nicht im DNS (obwohl Ihr DNS einen Notfall-Backup-Eintrag dafür hat). Hier ist der normale Inhalt von /etc/hosts in OS X (ab 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
Beachten Sie, dass diese Datei, wenn Sie sie bearbeiten/neu erstellen müssen, im Nur-Text-Format (überhaupt keine Formatierung) mit Zeilenenden im Unix-Stil (Zeilenvorschübe) vorliegen muss. Sie können einen Befehlszeilen-Editor wie vi
oder verwenden nano
; Wenn Sie einen GUI-Editor möchten, empfehle ich TextWrangler oder seinen großen Bruder BBEdit zum Bearbeiten von Dateien wie diesem, da sie gut darin sind, den von Ihnen bearbeiteten Dateien keine unechten "hilfreichen" Dinge hinzuzufügen, und auch Administratorrechte zum Bearbeiten verwenden können Systemdateien (wie /etc/hosts).
(Außerdem ist es nicht wirklich sichtbar oder wichtig, aber das sind Tabulatorzeichen zwischen den Adressen und Namen.)
Verwenden Sie zum Testen von Lookups wie diesem dscacheutil
( dscacheutil -q host -a name localhost
) anstelle von etwas wie dig
. Der Grund für die Verwendung dscacheutil
ist, dass dig
(and host
and nsloogup
) die System-Lookup-Richtlinie umgeht und nur DNS direkt überprüft, während dscacheutil
die vollständige System-Lookup-Richtlinie verwendet wird. Infolgedessen werden dig
keine Einträge in /etc/hosts angezeigt oder mDNS (Bonjour)-Suchvorgänge durchgeführt oder in Verzeichnisdiensten nach Computereinträgen gesucht oder zwischengespeicherte Einträge aus früheren Suchvorgängen angezeigt oder ...
Wenn Sie die hosts-Datei richtig eingerichtet haben, dscacheutil
sollte die Ausgabe von wie folgt aussehen:
$ dscacheutil -q host -a name localhost
name: localhost
ipv6_address: ::1
ipv6_address: fe80:1::1
name: localhost
ip_address: 127.0.0.1
Brendan
Fahrrad