Connectez-vous à un serveur Jekyll construit localement à l'aide d'appareils mobiles sur le réseau local

89

Après utilisation jekyll servesur une machine, un serveur WEBrick est mis en place et le site est accessible à partir localhost:4000de ce PC particulier.

Cependant, je me demande comment accéder à ce serveur Web à partir d'autres machines du réseau local, en particulier pour les appareils mobiles? J'essaie de tester le site jekyll sur les appareils mobiles avant de pousser le code sur Github.

Yi Zeng
la source

Réponses:

188

Essayez jekyll serve --host=0.0.0.0lorsque vous appelez Jekyll sur la ligne de commande.

Cela permettra au serveur HTTP de Jekyll de se lier à toutes les adresses IP disponibles, plutôt que simplement à localhost.

Vous pouvez également l'ajouter à votre _config.ymlavec host: 0.0.0.0. GitHub ignorera simplement cela lorsque vous poussez, il est donc sûr de l'utiliser si cela ne vous dérange pas d'avoir votre travail ouvertement accessible sur votre réseau.


Sans --host=0.0.0.0Jekyll affichera quelque chose comme ceci lorsque vous démarrez:

$ jekyll serve
[...]
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.

Mais avec --host=0.0.0.0(ou host: 0.0.0.0in _config.yml), vous remarquerez qu'il écoute sur toutes les interfaces (représentées par 0.0.0.0) plutôt que de simplement écouter sur l'interface de bouclage (représentée par 127.0.0.1)

$ jekyll serve --host=0.0.0.0
[...]
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop. 

Si vous ne pouvez toujours pas accéder à votre serveur, il se peut qu'un pare-feu l'arrête. Désactivez temporairement votre pare-feu ou ajoutez une règle de transfert de port pour le port 4000.


Une fois que Jekyll écoute correctement sur toutes les interfaces, vous pouvez y accéder depuis votre appareil mobile en utilisant votre adresse IP LAN (récupérée à partir de quelque chose comme ifconfigou en ipconfigfonction de votre système d'exploitation).

pauljz
la source
3
La première partie a fonctionné comme indiqué (jekyll 2.5.3), n'a pas testé la deuxième partie (à propos de l'entrée dans le fichier de configuration).
j4v1
7
Pour accéder ensuite à votre site, sur votre autre ordinateur / appareil mobile, saisissez l'adresse IP de l'ordinateur effectuant l'hébergement. (Quelque chose comme probablement 192.168.1.5:4000). Et voici un moyen de trouver votre ip: stackoverflow.com/a/13322549/1400991
Ross R
Si vous essayez d'exécuter un serveur sur Chromebook sous Crouton, vous devrez également exécuter /sbin/iptables -P INPUT ACCEPTpour ouvrir le pare-feu. Ajoutez éventuellement cette ligne à /etc/rc.localsi vous souhaitez que le pare-feu soit ouvert par défaut lorsque vous entrez chroot. Voir aussi les instructions officielles .
Alex Yursha
1
mais il plante toutes les images avec {{site.url}} parce qu'elles pointent vers http: 0.0.0.0: 4000 qui ne s'ouvre pas dans la machine principale
GorvGoyl
1
Cela ne répond pas complètement à la question, quelle est l'adresse à utiliser? localhost: 4000 ou 0.0.0.0:4000 ou autre chose?
Andy
-8

En supposant que votre appareil mobile est connecté au même LAN que votre machine de développement.

  1. Vérifiez l'adresse IP LAN de votre machine de développement. Généralement quelque chose comme: 192.168.0.XXX. Où .XXX correspond aux 3 derniers chiffres uniques de l'adresse IP LAN de votre machine de développement.

  2. Pointez le navigateur Web de votre appareil mobile vers: http://192.168.0.XXX:4000

C'est comme ça que je le fais sur mon ordinateur portable et mon iPhone pour Jekyll dev.

JW
la source
2
Dois-je spécifier --host=0.0.0.0lors du démarrage du serveur? (Je ne peux pas le tester pour le moment.)
Yi Zeng
@ user1177636, non, pas nécessaire, juste jekyll serve. Cela lancera le serveur WebBrick qui sera disponible sur n'importe quel périphérique ou machine local. BTW, je suppose que vous exécutez Jekyll> = 1.0.0, les commandes sont différentes pour les anciennes versions. Exécutez jekyll --serversi vous utilisez <= 0.12.1.
JW
D'une manière ou d'une autre, cela n'a pas fonctionné pour moi sans spécifier --host = 0.0.0.0. Quels ont été les paramètres du pare-feu que vous avez utilisés pour résoudre ce problème?
skjoshi
2
Pour moi aussi, courir jekyll servene fonctionnait pas. Mon appareil mobile n'a pas pu accéder au serveur sauf si j'ai sonné jekyll serve --host=0.0.0.0. Quelqu'un a une explication à cela?
fraxture
2
@fraxture jekyll serve par défaut écoute sur localhost (127.0.0.1) il n'est accessible que via l'adaptateur de bouclage sur la machine sur laquelle il s'exécute. en lui disant de se lier à 0.0.0.0, vous lui dites de se lier à toutes les interfaces, et ainsi il se lie à votre interface (ethernet / sans fil / etc.) et est donc également accessible via le côté LAN.
Doon