J'utilise Jekyll
et Vagrant
sur mon mac. J'ai trouvé que Jekyll server
se lierait à la 0.0.0.0:4000
place de 127.0.0.1:4000
. Liera également gem server
à cette adresse par défaut. Je peux toujours le visiter via http://localhost:port
. Mais pour Jekyll
, il semble que le paramètre par défaut (par exemple 0.0.0.0:4000) nécessite un accès Internet. Je ne peux pas courir Jekyll server
sans Internet. Est-ce un petit bug?
J'utilise aussi Vagrant
. J'ai défini la redirection de port (8080 => 4000) dans Vagrantfile, depuis que j'installe Jekyll
sur Vagrant
une machine virtuelle et que je la teste sous Macintosh. Si j'utilise le paramètre par défaut (0.0.0.0:4000), cela fonctionne. Je peux le visiter depuis mon safari avec http://localhost:8080
. Mais s'il n'y a pas Internet, je ne peux pas me lier à 0.0.0.0:4000. J'utilise jekyll server -H 127.0.0.1
pour lier le service à la 127.0.0.1:4000
place, alors je ne peux pas le visiter via http://localhost:8080
.
Quelqu'un peut-il expliquer la différence entre 0.0.0.0, 127.0.0.1 et localhost ? Et quelqu'un peut-il expliquer pourquoi la différence causera ce problème ?
Réponses:
127.0.0.1
est normalement l'adresse IP attribuée à l'interface "loopback" ou locale uniquement. Il s'agit d'une "fausse" carte réseau qui ne peut communiquer qu'au sein du même hôte. Il est souvent utilisé lorsque vous souhaitez qu'une application compatible réseau ne serve que des clients sur le même hôte. Un processus qui écoute les127.0.0.1
connexions ne recevra que les connexions locales sur ce socket."localhost" est normalement le nom d'hôte de l'
127.0.0.1
adresse IP. Il est généralement défini dans/etc/hosts
(ou l'équivalent de Windows nommé «hôtes» quelque part sous%WINDIR%
). Vous pouvez l'utiliser comme n'importe quel autre nom d'hôte - essayez "ping localhost" pour voir comment il se résout127.0.0.1
.0.0.0.0
a plusieurs significations différentes, mais dans ce contexte, lorsqu'un serveur est invité à écouter,0.0.0.0
cela signifie "écouter sur toutes les interfaces réseau disponibles". L'adaptateur de bouclage avec adresse IP127.0.0.1
du point de vue du processus de serveur ressemble à n'importe quel autre adaptateur réseau sur la machine, donc un serveur auquel il est demandé d'écouter0.0.0.0
acceptera également les connexions sur cette interface.J'espère que cela répond au côté IP de votre question. Je ne connais pas Jekyll ou Vagrant, mais je suppose que votre redirection de port
8080 => 4000
est en quelque sorte liée à une carte réseau particulière, donc elle n'est pas sur le chemin lorsque vous vous connectez localement à127.0.0.1
la source
ping localhost
semble fonctionner sur Windows même sans que le fichier hosts pointe127.0.0.1
verslocalhost
.Dans la version actuelle de Jekyll, la valeur par défaut est http://127.0.0.1:4000/ .
C'est bien, si vous êtes connecté à un réseau mais que vous ne voulez pas que quelqu'un d'autre accède à votre application.
Cependant, il peut arriver que vous souhaitiez voir comment votre application s'exécute sur un mobile ou à partir d'un autre ordinateur portable / ordinateur.
Dans ce cas, vous pouvez utiliser
Cela lie votre application à l'hôte et à la prochaine utilisation suivante pour s'y connecter à partir d'un autre hôte
la source