'localhost' dejó de funcionar como un alias para '127.0.0.1' para SSHing en mi VM VirtualBox. ¿Por qué, y cómo solucionarlo?

2

La pregunta explica el problema. Durante meses nunca he tenido ningún problema en este sentido. Entonces, ayer por la mañana, no pude entrar en mi máquina virtual! Le 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é sucedió esto y, lo que es más importante, cómo lo soluciono?

Probé dig localhost , 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
    
pregunta Brendan 02.07.2014 - 15:47

1 respuesta

3

[Esto se copia & expandido ligeramente desde mi respuesta en superusuario .]

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 plano (sin formato), con finales de línea de estilo Unix (saltos de línea). Puede usar un editor de línea de comando como vi o nano ; Si quieres un editor de GUI, tiendo a recomendar TextWrangler o su hermano mayor BBEdit para editar archivos como este, ya que son buenos para no agregar cosas espurias "útiles" a los archivos que editas 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 esos son caracteres de tabulación entre las direcciones y los nombres).

Para realizar búsquedas de este tipo en búsquedas, utilice dscacheutil ( dscacheutil -q host -a name localhost ) en lugar de algo como dig . La razón para usar dscacheutil es que dig (y host y nsloogup ) omite la política de búsqueda del sistema y solo verifica el DNS directamente, mientras que dscacheutil usa la política de búsqueda completa del sistema. Como resultado, dig no verá las entradas en / etc / hosts, ni realizará las búsquedas de mDNS (Bonjour), ni buscará las entradas de la computadora en los servicios de directorio, ni verá las entradas en caché de las búsquedas anteriores, o ...

Cuando haya configurado correctamente el archivo de hosts, a continuación se muestra la salida de 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
    
respondido por el Gordon Davisson 10.07.2014 - 08:16

Lea otras preguntas en las etiquetas