Estou usando Jekyll
e Vagrant
no meu mac. Eu achei que Jekyll server
vai ligar para em 0.0.0.0:4000
vez de 127.0.0.1:4000
. Também gem server
será vinculado a este endereço por padrão. Ainda posso visitá-lo via http://localhost:port
. Mas Jekyll
, parece que a configuração padrão (por exemplo, 0.0.0.0:4000) requer acesso à Internet. Não consigo correr Jekyll server
sem Internet. É um pequeno bug?
Eu também uso Vagrant
. Eu configurei o encaminhamento de porta (8080 => 4000) no Vagrantfile, desde que instalo Jekyll
na Vagrant
máquina virtual e testo no Macintosh. Se eu usar a configuração padrão (0.0.0.0:4000), ela funcionará. Eu posso visitá-lo no meu safari com http://localhost:8080
. Mas se não houver internet, não posso vincular a 0.0.0.0:4000. Em vez disso, eu uso o jekyll server -H 127.0.0.1
serviço BIND para vincular o serviço .127.0.0.1:4000
http://localhost:8080
Alguém pode explicar a diferença entre 0.0.0.0, 127.0.0.1 e localhost ? E alguém pode explicar por que a diferença causará esse problema ?
Respostas:
127.0.0.1
normalmente é o endereço IP atribuído à interface "loopback" ou somente local. Este é um adaptador de rede "falso" que pode se comunicar apenas no mesmo host. É frequentemente usado quando você deseja que um aplicativo com capacidade de rede atenda apenas clientes no mesmo host. Um processo que está escutando127.0.0.1
conexões receberá apenas conexões locais nesse soquete."localhost" é normalmente o nome do host do
127.0.0.1
endereço IP. Geralmente é definido/etc/hosts
(ou o equivalente do Windows chamado "hosts" em algum lugar abaixo%WINDIR%
). Você pode usá-lo como qualquer outro nome de host - tente "ping localhost" para ver como ele se resolve127.0.0.1
.0.0.0.0
tem alguns significados diferentes, mas nesse contexto, quando um servidor é instruído a ouvir,0.0.0.0
isso significa "ouvir em todas as interfaces de rede disponíveis". O adaptador de loopback com endereço IP127.0.0.1
da perspectiva do processo do servidor se parece com qualquer outro adaptador de rede na máquina, portanto, um servidor solicitado a ouvir0.0.0.0
também aceitará conexões nessa interface.Espero que isso responda ao lado do IP da sua pergunta. Não estou familiarizado com Jekyll ou Vagrant, mas acho que o encaminhamento de porta
8080 => 4000
está de alguma forma vinculado a um adaptador de rede específico, portanto, não está no caminho quando você se conecta localmente a127.0.0.1
fonte
ping localhost
parece funcionar no Windows, mesmo sem o arquivo hosts apontando127.0.0.1
paralocalhost
.Na versão atual do Jekyll, o padrão é http://127.0.0.1:4000/ .
Isso é bom se você estiver conectado a uma rede, mas não desejar que mais ninguém acesse seu aplicativo.
No entanto, pode acontecer que você queira ver como o aplicativo é executado em um celular ou em outro laptop / computador.
Nesse caso, você pode usar
Isso vincula seu aplicativo ao host e o próximo uso a seguir para conectar-se a ele de algum outro host
fonte