La pregunta explica el problema. Durante meses nunca he tenido ningún problema en este sentido. Luego, ayer por la mañana, ¡no pude acceder a mi máquina virtual! Tomó mucho tiempo solucionar el problema, pero aquí estaba la solución:
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 [email protected]
[email protected]'s password:
Last login: Tue Jul 1 22:37:59 2014 from 10.0.2.2
Entonces, ¿por qué habría sucedido esto y, lo que es más importante, cómo lo soluciono?
Lo intenté dig localhost
, lo que parece decirme que todavía hay algún tipo de conexión entre localhost y 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
Respuesta1
localhost normalmente se define en el archivo /etc/hosts, no en DNS (aunque su DNS tiene una entrada de respaldo de emergencia). Aquí está el contenido normal de /etc/hosts en OS X (a partir de 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
Tenga en cuenta que si necesita editar/recrear este archivo, debe estar en formato de texto sin formato (sin formato alguno), con finales de línea de estilo Unix (saltos de línea). Puede utilizar un editor de línea de comandos como vi
o nano
; Si quieres un editor GUI, te recomiendoTextWranglero su hermano mayorBBpara editar archivos como este, ya que son buenos para no agregar cosas falsas "útiles" a los archivos que edita, y también pueden usar derechos de administrador para editar archivos del sistema (como /etc/hosts).
(Además, no es realmente visible ni importante, pero son caracteres de tabulación entre las direcciones y los nombres).
Para probar búsquedas como esta, utilice dscacheutil
( dscacheutil -q host -a name localhost
) en lugar de algo como dig
. La razón para usarlo dscacheutil
es que dig
(y host
y nsloogup
) omite la política de búsqueda del sistema y solo verifica el DNS directamente, mientras dscacheutil
usa la política de búsqueda completa del sistema. Como resultado, dig
no verá entradas en /etc/hosts, ni realizará búsquedas de mDNS (Bonjour), ni buscará entradas de Computadora en servicios de directorio, ni verá entradas en caché de búsquedas anteriores, o...
Cuando tenga el archivo hosts configurado correctamente, así es como dscacheutil
debería verse el resultado:
$ dscacheutil -q host -a name localhost
name: localhost
ipv6_address: ::1
ipv6_address: fe80:1::1
name: localhost
ip_address: 127.0.0.1