unreachable solucion failed destination already address ip jekyll

ip - solucion - ¿Cuál es la diferencia entre 0.0.0.0, 127.0.0.1 y localhost?



destination host unreachable solucion (2)

Estoy usando Jekyll y Vagrant en mi mac. Encontré que el Jekyll server se 0.0.0.0:4000 a 0.0.0.0:4000 lugar de 127.0.0.1:4000 . También el gem server se enlazará a esta dirección por defecto. Todavía puedo visitarlo a través de http://localhost:port . Pero para Jekyll , parece que la configuración predeterminada (por ejemplo, 0.0.0.0:4000) requiere acceso a Internet. No puedo ejecutar el Jekyll server sin Internet. ¿Es un bicho pequeño?

También uso Vagrant . He configurado el reenvío de puertos (8080 => 4000) en Vagrantfile, ya que instalo Jekyll en la máquina virtual Vagrant y lo pruebo en Macintosh. Si uso la configuración predeterminada (0.0.0.0:4000), funciona. Puedo visitarlo desde mi safari con http://localhost:8080 . Pero si no hay internet, no puedo enlazar a 0.0.0.0:4000. jekyll server -H 127.0.0.1 para enlazar el servicio a 127.0.0.1:4000 lugar, entonces no puedo visitarlo a través de http://localhost:8080 .

¿Alguien puede explicar la diferencia entre 0.0.0.0, 127.0.0.1 y localhost ? ¿Y alguien puede explicar por qué la diferencia causará este problema ?


En la versión actual de Jekyll, su valor predeterminado es http://127.0.0.1:4000/ .
Esto es bueno, si está conectado a una red pero no quiere que nadie más acceda a su aplicación.

Sin embargo, puede suceder que desee ver cómo se ejecuta su aplicación en un móvil o desde otra computadora portátil / computadora.

En ese caso, puedes usar

jekyll serve --host 0.0.0.0

Esto une su aplicación al host y el siguiente uso siguiente para conectarse a ella desde otro host

http://host''s IP adress/4000


127.0.0.1 es normalmente la dirección IP asignada a la interfaz de "bucle invertido" o solo local. Este es un adaptador de red "falso" que solo puede comunicarse dentro del mismo host. A menudo se usa cuando se desea que una aplicación con capacidad de red solo sirva a clientes en el mismo host. Un proceso que escucha las conexiones 127.0.0.1 solo recibirá conexiones locales en ese socket.

"localhost" es normalmente el nombre de host para la dirección IP 127.0.0.1 . Generalmente se establece en /etc/hosts (o el equivalente de Windows denominado "hosts" en algún lugar bajo %WINDIR% ). Puede usarlo como cualquier otro nombre de host: pruebe "ping localhost" para ver cómo se resuelve en 127.0.0.1 .

0.0.0.0 tiene un par de significados diferentes, pero en este contexto, cuando se le dice a un servidor que escuche el 0.0.0.0 significa "escuchar en cada interfaz de red disponible". El adaptador de bucle invertido con la dirección IP 127.0.0.1 desde la perspectiva del proceso del servidor tiene el mismo aspecto que cualquier otro adaptador de red en la máquina, por lo que un servidor que escuche el 0.0.0.0 también aceptará conexiones en esa interfaz.

Eso espero que responda al lado IP de tu pregunta. No estoy familiarizado con Jekyll o Vagrant, pero supongo que su reenvío de puerto 8080 => 4000 está de alguna manera vinculado a un adaptador de red en particular, por lo que no está en la ruta cuando se conecta localmente a 127.0.0.1