Impossibile accedere a localhost dopo l'aggiornamento a Mavericks ma può accedere a 127.0.0.1

7

Ho trovato questa domanda , ma non è stato risolto (e non ha sono stato toccato in un attimo). Non sono sicuro che il mio problema sia lo stesso, ma qui non ho abbastanza reputazione per commentare questa domanda.

Ho appena effettuato l'aggiornamento da Snow Leopard (10.6.8) a Mavericks. Prima dell'upgrade, sono stato in grado di visitare http://localhost ; ma ora non posso. Ho controllato il mio file hosts e sembrava ok (ma questa non è la mia area di competenza):

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

Sono ancora in grado di visitare 127.0.0.1. Questo non sarebbe necessariamente un grosso problema, ma sto cercando di utilizzare Sinatra su Thin che non funziona dopo l'aggiornamento del sistema operativo (stava funzionando sul mio setup di Snow Leopard), quindi temo possa esserci un problema di fondo che potrebbe avere altri effetti negativi . Grazie.

    
posta MuffinTheMan 31.10.2013 - 22:22
fonte

3 risposte

6

Tutto sembra funzionare ora. Posso accedere nuovamente a localhost e la mia app sta eseguendo Sinatra on Thin come era prima. Grazie a bmike , ho fatto un po 'di ricerche sul perché il mio loopback era irraggiungibile e mi sono imbattuto in questo articolo . Ho spostato il mio vecchio file hosts ( /etc/hosts ) in hosts.old e ne ho creato uno nuovo al suo posto che conteneva semplicemente:

##
# 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

Quindi, ho eseguito dscacheutil -flushcache e ho riavviato il mio computer *. Dopo ciò, le cose sembrano funzionare normalmente di nuovo. Posso solo immaginare che qualcosa di strano sia successo con il mio vecchio file hosts. Ho anche preso consigli JakeGould e ho rubato Ruby 2.0.0 (avevo ancora ruby 1.8.7 - non puoi disinstallare completamente ruby su un mac, dato che usa ruby per altre cose) e rvm e reinstallarli; ma non sono sicuro che ciò abbia avuto a che fare con il mio successo, poiché avevo ancora gli stessi problemi fino a quando ho seguito i passaggi sopra descritti.

Nota: il file hosts sopra contiene praticamente la stessa cosa che ho detto prima del file hosts (vedi domanda originale); tuttavia, nel mio file hosts originale c'erano altre cose che non condividevo nella mia domanda (ho appena condiviso quello che pensavo fosse la parte pertinente), quindi forse qualcosa si è bloccato quando ho aggiornato - Vorrei saperlo con certezza.

* Il riavvio non è probabilmente necessario. In realtà ho avuto questo problema dopo aver configurato un nuovo utente da un'unità di backup sulla mia macchina al lavoro (che sta eseguendo Mountain Lion) e (solo oggi) ha seguito gli stessi passaggi sopra (meno spazzare via ruby e riavviare la macchina), e lavorato. Questo mi porta a credere che il nocciolo del problema fosse un file /etc/hosts borked.

    
risposta data 01.11.2013 - 17:12
fonte
4

Non ho problemi con la connessione a un server Web quando è effettivamente in ascolto sulla porta 80.

Se non si dispone di un server Web in esecuzione, ecco cosa si dovrebbe ottenere dal terminale per mostrare che la risoluzione dei nomi sta funzionando su tutte le interfacce di rete prima che il telnet si arrenda connettendosi alla porta 80:

mac:~ me$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

Se dovessi ottenere risultati diversi, userei scutil per determinare la raggiungibilità per la tua destinazione di rete:

mac:~ me$ scutil -r localhost
Reachable,Local Address
mac:~ me$ scutil -r loopback
Reachable
mac:~ me$ scutil -r 127.0.0.1
Reachable,Local Address

Potrebbe valere la pena controllare se si dispone di LittleSnitch o di un altro firewall con regole che bloccano l'accesso alla rete o si riavvia in modalità provvisoria per verificare se alcune estensioni del kernel o altri conflitti impediscono la raggiungibilità e l'accesso alle porte locali. Inoltre, vorrai sicuramente controllare qualsiasi server web che stai utilizzando per assicurarti che ascolti davvero la porta 80:

mac:~ me$ sudo lsof -i :80 | egrep "PID|LISTEN"
Password:
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd    1645 root    8u  IPv6 0x513627eaa81c8205      0t0  TCP *:http (LISTEN)
httpd   15851 _www    8u  IPv6 0x513627eaa81c8205      0t0  TCP *:http (LISTEN)
httpd   72969 _www    8u  IPv6 0x513627eaa81c8205      0t0  TCP *:http (LISTEN)

Inoltre, esci da tutti i browser Web o preparati a filtrare le connessioni di rete dal comando lsof sopra poiché mostra tutte le connessioni sulla porta 80.

    
risposta data 31.10.2013 - 22:35
fonte
1

Mavericks (OS X 10.9) utilizza Ruby 2.0. Non è chiaro su cosa stavi usando in Snow Leopard (OS X 10.6.8) ma forse un cambiamento importante nella versione ha rotto qualcosa? Nella mia esperienza, gli aggiornamenti di Ruby non sono mai facilmente compatibili con le versioni precedenti e-IMHO-molto frustrante da mantenere dal punto di vista dell'amministratore di sistema per ragioni come questa.

Consiglierei di reinstallare qualsiasi gemma di Ruby che hai a disposizione e riprovare.

    
risposta data 01.11.2013 - 01:13
fonte

Leggi altre domande sui tag