Estoy usando Jekylly Vagranten mi mac. Descubrí que Jekyll serverse unirá a en 0.0.0.0:4000lugar de 127.0.0.1:4000. También gem serverse unirá a esta dirección de forma predeterminada. 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 correr Jekyll serversin Internet. ¿Es un pequeño error?
Yo también lo uso Vagrant. He configurado el reenvío de puertos (8080 => 4000) en Vagrantfile, ya que lo instalo Jekyllen Vagrantuna máquina virtual 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 vincularme a 0.0.0.0:4000. En su lugar, utilizo jekyll server -H 127.0.0.1para vincular el servicio 127.0.0.1:4000, luego no puedo visitarlo a través 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 ?

Respuestas:
127.0.0.1es 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 desea que una aplicación con capacidad de red solo atienda a clientes en el mismo host. Un proceso que está escuchando127.0.0.1conexiones solo recibirá conexiones locales en ese socket."localhost" es normalmente el nombre de host para la
127.0.0.1dirección IP. Por lo general, se establece en/etc/hosts(o el equivalente de Windows llamado "hosts" en algún lugar debajo%WINDIR%). Puede usarlo como cualquier otro nombre de host: intente "hacer ping localhost" para ver cómo se resuelve127.0.0.1.0.0.0.0tiene un par de significados diferentes, pero en este contexto, cuando se le dice a un servidor que escuche0.0.0.0eso significa "escuchar en cada interfaz de red disponible". El adaptador de bucle invertido con dirección IP127.0.0.1desde la perspectiva del proceso del servidor se parece a cualquier otro adaptador de red en la máquina, por lo que un servidor que debe escuchar0.0.0.0también aceptará conexiones en esa interfaz.Espero que conteste el lado IP de su pregunta. No estoy familiarizado con Jekyll o Vagrant, pero supongo que su reenvío de puertos
8080 => 4000está de alguna manera vinculado a un adaptador de red en particular, por lo que no está en el camino cuando se conecta localmente a127.0.0.1fuente
ping localhostparece que funciona en Windows , incluso sin el archivo de hosts que apunta127.0.0.1alocalhost.En la versión actual de Jekyll, el valor predeterminado es http://127.0.0.1:4000/ .
Esto es bueno si está conectado a una red pero no desea 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 dispositivo móvil o desde otra computadora portátil / computadora.
En ese caso, puedes usar
Esto vincula su aplicación al host y el siguiente uso siguiente para conectarse desde otro host
fuente