3 votos

No se puede hacer ping a localhost después de migrar a un nuevo Mac

Después de migrar a un nuevo MacBook Pro ya no puedo hacer ping localhost .

Ya intenté cambiar mi /etc/hosts aunque ya estaba bien antes.

$ host localhost
localhost has address 127.0.0.1
localhost has IPv6 address ::1

$ 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.098 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.081 ms

Pinging localhost. funciona de alguna manera, no puedo entender por qué.

Si reinicio el sistema no se resuelve localhost de nuevo, pero si yo ping localhost. entonces ping localhost empieza a funcionar. No sé si esto puede ayudar a alguien con el mismo problema

¿Qué podría estar mal?

$ ping localhost
ping: cannot resolve localhost: Unknown host
$ 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.072 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.084 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.077 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.073 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.072/0.076/0.084/0.005 ms
$ 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.070 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.088 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.082 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss

más resultados

MBPdeFrancisco:~ francisco$ dscacheutil -q host -a name localhost
name: localhost
ipv6_address: fe80:1::1
MBPdeFrancisco:~ francisco$ LC_ALL=C cat -vet /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 localhostM-bM-^@M-($
255.255.255.255 broadcasthostM-bM-^@M-($
::1 localhostM-bM-^@M-($
fe80::1%lo0 localhost

MBPdeFrancisco:~ francisco$ cat /etc/resolv.conf
#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
#   scutil --dns
#
# SEE ALSO
#   dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
domain lan
nameserver 2001:8a0:ddce:7401:9e97:26ff:fedb:6214
nameserver 192.168.1.254

0 votos

Cuál es la salida del comando "ping localhost", por favor añada eso a su pregunta. También en Preferencias del Sistema > Seguridad y Privacidad > Firewall > Opciones de Firewall. ¿Está seleccionado el modo oculto?

0 votos

Ahora funciona, no he cambiado absolutamente nada, no puedo entenderlo

0 votos

Reinicié el sistema, y localhost no volvió a funcionar. pero si ping localhost. entonces ping localhost comienza a trabajar

2voto

Nate Puntos 220

Su archivo /etc/hosts está corrupto; por alguna razón tiene unicode LINE SEPARATOR caracteres añadido a varias líneas (el " M-bM-^@M-( " en LC_ALL=C cat -vet '), incluyendo una de ellas para localhost . El resolver de MacOS tratará ese extraño carácter como parte del nombre de host, por lo que si de alguna manera consigues hacer un ping localhost<LINE SEPARATOR> se resolverá a 127.0.0.1 sin problemas. Simplemente localhost ? No tanto.

No sé cómo se han añadido esos caracteres extraños; ¿intentó editar el archivo con algún editor sofisticado que pensó que sería una buena idea utilizar los últimos caracteres de formato de moda, en lugar de limitarse a lo que funciona? Si es así, no use ese editor para archivos de configuración de estilo unix (o scripts, o...). Recomiendo BBEdit incluso si no lo compras, te permitirá hacer las cosas básicas en su modo de demostración gratuito.

En cuanto a cómo arreglarlo... Bueno, primero haz una copia de seguridad por si esto se tuerce y se estropean las cosas aún más de lo que están ahora. Luego ejecuta el comando:

sudo perl -pi -e 's/[^[:ascii:]]//g' /etc/hosts

Que debe purgar todos los caracteres unicode extraños del archivo. A continuación, pruebe el dscacheutil de nuevo; deberías obtener algo como esto:

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

name: localhost
ip_address: 127.0.0.1

P.d. para una explicación de por qué alguien pensó que el SEPARADOR DE LÍNEA era una buena idea, vea el siempre relevante XKCD y Jeff Atwood despotrica sobre "El gran cisma de Newline" .

0 votos

Y para ello existe una bonita interfaz gráfica de usuario. Bien visto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X