Impossibile eseguire il ping di localhost dopo la migrazione al nuovo Mac

2

Dopo la migrazione a un nuovo MacBook Pro non posso più eseguire il ping di localhost .

Ho già provato a modificare il mio file /etc/hosts sebbene fosse già precedente.

$ 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. funziona in qualche modo, non capisco perché.

Se riavvio il sistema non risolverà nuovamente localhost , ma se I ping localhost. allora ping localhost inizia a funzionare. Non so se questo può aiutare chiunque abbia lo stesso problema

Che cosa potrebbe essere sbagliato?

$ 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

altri risultati

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
    
posta Luce Sky Walker 25.05.2018 - 14:04
fonte

1 risposta

1

Il tuo file / etc / hosts è corrotto; per qualche motivo ha unicode LINE SEPARATOR caratteri aggiunti a più righe (la cosa " M-bM-^@M-( " in LC_ALL=C cat -vet 's output), incluso uno di quelli per localhost . il risolutore di macOS tratterà quel carattere strano come parte del nome host e quindi se in qualche modo riesci a eseguire il ping di localhost<LINE SEPARATOR> , verrà risolto correttamente in 127.0.0.1. Pianura localhost ? Non così tanto.

Non so come siano stati aggiunti quei personaggi strani; hai provato a modificare il file con un editor sofisticato che pensava sarebbe stata una buona idea usare i più recenti caratteri di formattazione alla moda, piuttosto che limitarsi a ciò che funzionerebbe? Se è così, non usare quell'editor per i file di configurazione in stile unix (o script, o ...). Raccomando invece BBEdit ; anche se non lo comprate, ti permetterà di fare le cose di base nella sua modalità demo gratuita.

Per quanto riguarda come risolverlo ... Beh, prima di tutto fai una copia di backup nel caso in cui questo passi di lato e incasini le cose ancora più di quanto non siano ora. Quindi esegui il comando:

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

Che dovrebbe eliminare tutti gli strani caratteri unicode dal file. Quindi prova di nuovo il comando dscacheutil ; dovresti ottenere qualcosa di simile a questo:

$ 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.S. per una spiegazione sul perché qualcuno abbia pensato che LINE SEPARATOR fosse una buona idea, vedi l'XKCD sempre rilevante e Jeff Atwood's rant su "The Great Newline Schism" .

    
risposta data 28.05.2018 - 00:30
fonte

Leggi altre domande sui tag