No se puede acceder a localhost después de actualizar a Mavericks pero se puede acceder a 127.0.0.1

7

Me encontré con esta pregunta , pero no se resolvió (y no tiene '' ha sido tocado en un tiempo). No estoy seguro de si mi problema es el mismo, pero no tengo suficiente reputación para comentar sobre esa pregunta.

Acabo de actualizar de Snow Leopard (10.6.8) a Mavericks. Antes de la actualización, pude visitar http://localhost ; pero ahora no puedo. Revisé mi archivo de hosts, y se veía bien (pero esta no es mi área de especialización):

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

Todavía puedo visitar 127.0.0.1. Esto no necesariamente sería un gran problema, pero estoy tratando de usar Sinatra en Thin que tampoco funciona después de la actualización del sistema operativo (estaba funcionando en mi configuración de Snow Leopard), así que me temo que puede haber un problema subyacente que podría tener otros efectos negativos . Gracias.

    
pregunta MuffinTheMan 31.10.2013 - 22:22

3 respuestas

6

Todo parece estar funcionando ahora. Puedo acceder a localhost otra vez, y mi aplicación ejecuta Sinatra en Thin como antes. Gracias a bmike , hice un poco de búsqueda sobre por qué mi loopback era inalcanzable y encontré este artículo . Moví mi antiguo archivo de hosts ( /etc/hosts ) a hosts.old e hice uno nuevo en su lugar que simplemente contenía:

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

Luego, ejecuté dscacheutil -flushcache y reinicié mi computadora *. Después de eso, las cosas parecen funcionar normalmente de nuevo. Solo puedo adivinar que algo raro sucedió con mi antiguo archivo de hosts. También tomé el consejo de JakeGould y volé el rubí 2.0.0 (todavía tenía ruby 1.8.7; no puedes desinstale ruby completamente en un mac, ya que usa ruby para otras cosas) y rvm y reinstalado esos; pero no estoy seguro de que haya tenido algo que ver con mi éxito, ya que todavía tenía los mismos problemas hasta que seguí los pasos descritos anteriormente.

Nota: el archivo de hosts anterior contiene prácticamente lo mismo que dije antes que el archivo de mis hosts (vea la pregunta original); sin embargo, había otras cosas en mi archivo de hosts original que no compartí en mi pregunta (solo compartí lo que pensé que era la parte relevante), por lo que tal vez algo se haya desvanecido cuando actualicé, ojalá lo supiera con seguridad.

* El reinicio probablemente no sea necesario. De hecho, tuve este problema después de configurar un nuevo usuario desde una unidad de respaldo en mi máquina en el trabajo (que está ejecutando Mountain Lion) y (hoy mismo) seguí los mismos pasos anteriores (sin quitar el rubí y reiniciar la máquina), y trabajó. Esto me lleva a creer que el meollo del problema fue un archivo /etc/hosts .

    
respondido por el MuffinTheMan 01.11.2013 - 17:12
4

No tengo esos problemas para conectarme a un servidor web cuando en realidad está escuchando en el puerto 80.

Si no tiene un servidor web en ejecución, esto es lo que debe obtener de la terminal para mostrar que la resolución de nombres funciona en todas las interfaces de red antes de que el telnet deje de conectarse al puerto 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

Si obtuvieras resultados diferentes, usaría scutil para determinar la accesibilidad para el destino de tu red:

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

Podría valer la pena comprobar si tiene LittleSnitch u otro firewall que tiene reglas que bloquean el acceso a la red o se reinician en el Modo seguro para probar si algunas extensiones del kernel u otro conflicto impiden la accesibilidad y el acceso predeterminados a los puertos locales. Además, seguramente querrá comprobar cualquier servidor web que esté ejecutando para asegurarse de que realmente está escuchando el puerto 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)

También, salga de todos los navegadores web o prepárese para filtrar esas conexiones de red del comando lsof anterior, ya que muestra todas las conexiones a través del puerto 80.

    
respondido por el bmike 31.10.2013 - 22:35
1

Mavericks (OS X 10.9) utiliza Ruby 2.0. ¿No está claro lo que estaba usando bajo Snow Leopard (OS X 10.6.8) pero quizás un cambio importante en la versión rompió algo? En mi experiencia, las actualizaciones de Ruby nunca son fácilmente compatibles con versiones anteriores y, en mi opinión, muy frustrantes de mantener desde el punto de vista del administrador del sistema por razones como esta.

Recomendaría volver a instalar las gemas de Ruby que tengas y volver a intentarlo.

    
respondido por el JakeGould 01.11.2013 - 01:13

Lea otras preguntas en las etiquetas