Connettiti a un server Jekyll costruito localmente utilizzando dispositivi mobili nella LAN


90

Dopo l'utilizzo jekyll servesu una macchina, viene configurato un server WEBrick ed è possibile accedere al sito da localhost:4000questo particolare PC.

Tuttavia, mi chiedo come accedere a questo server web da altre macchine nella LAN, soprattutto per i dispositivi mobili? Sto provando a testare il sito jekyll su dispositivi mobili prima di inviare il codice a Github.

Risposte:


190

Prova jekyll serve --host=0.0.0.0quando invochi Jekyll dalla riga di comando.

Ciò renderà il server HTTP di Jekyll vincolato a tutti gli IP disponibili, piuttosto che solo a localhost.

Puoi anche aggiungerlo al tuo _config.ymlcon host: 0.0.0.0. GitHub lo ignorerà semplicemente quando spingi, quindi è sicuro da usare se non ti dispiace avere il tuo lavoro apertamente accessibile sulla tua rete.


Senza --host=0.0.0.0Jekyll produrrà qualcosa di simile all'avvio:

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

Ma con --host=0.0.0.0(o host: 0.0.0.0in _config.yml) noterai che è in ascolto su tutte le interfacce (rappresentate da 0.0.0.0) anziché solo sull'interfaccia di loopback (rappresentata da 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. 

Se non riesci ancora ad accedere al tuo server, potrebbe esserci un firewall che lo blocca. Disattiva temporaneamente il firewall o aggiungi una regola di port forwarding per la porta 4000.


Una volta che Jekyll ascolta in modo appropriato su tutte le interfacce, puoi accedervi dal tuo dispositivo mobile utilizzando il tuo indirizzo IP LAN (recuperato da qualcosa di simile ifconfigo in ipconfigbase al tuo sistema operativo).


3
La prima parte ha funzionato come indicato (jekyll 2.5.3), non ha testato la seconda parte (sulla voce nel file di configurazione).
j4v1

7
Per accedere poi al tuo sito, sull'altro tuo computer / dispositivo mobile, digita l'ip del computer che fa l'hosting. (Qualcosa probabilmente come 192.168.1.5:4000). Ed ecco un modo per trovare il tuo ip: stackoverflow.com/a/13322549/1400991
Ross R

Se stai tentando di eseguire un server sul Chromebook sotto Crouton, dovrai anche eseguire /sbin/iptables -P INPUT ACCEPTper aprire il firewall. Facoltativamente, aggiungi questa riga a /etc/rc.localse vuoi che il firewall sia aperto per impostazione predefinita quando inserisci chroot. Vedi anche le istruzioni ufficiali .
Alex Yursha

1
ma tutte le immagini con {{site.url}} si bloccano perché puntano a http: 0.0.0.0: 4000 che non si apre nella macchina principale
GorvGoyl

1
Questo non risponde completamente alla domanda, qual è l'indirizzo da usare? localhost: 4000 o 0.0.0.0:4000 o qualcos'altro?
Andy

-8

Supponendo che il tuo dispositivo mobile sia connesso alla stessa LAN della tua macchina di sviluppo.

  1. Asserire l'indirizzo IP LAN della macchina di sviluppo. Di solito qualcosa come: 192.168.0.XXX. Dove .XXX sono le ultime 3 cifre univoche dell'IP LAN della tua macchina di sviluppo.

  2. Punta il browser web del tuo dispositivo mobile su: http://192.168.0.XXX:4000

È così che lo faccio sul mio laptop e iPhone per Jekyll dev.


2
Devo specificare --host=0.0.0.0all'avvio del server? (Non posso provarlo al momento.)
Yi Zeng

@ user1177636, no, non necessario, solo jekyll serve. Ciò avvierà il server WebBrick che sarà disponibile su qualsiasi dispositivo o macchina locale. A proposito, presumo che tu stia eseguendo Jekyll> = 1.0.0, i comandi sono diversi per le versioni precedenti. Esegui jekyll --serverse si utilizza <= 0.12.1.
JW

In qualche modo non ha funzionato per me senza specificare --host = 0.0.0.0. Quali erano le impostazioni del firewall che hai usato per risolverlo?
skjoshi

2
Anche per me la corsa jekyll servenon ha funzionato. Il mio dispositivo mobile non è stato in grado di accedere al server se non ho suonato jekyll serve --host=0.0.0.0. Qualcuno ha una spiegazione per questo?
fraxture

2
@fraxture jekyll serve per impostazione predefinita ascolta su localhost (127.0.0.1) è accessibile solo tramite l'adattatore di loopback sulla macchina su cui è in esecuzione. dicendogli di collegarsi a 0.0.0.0 gli dici di collegarsi a tutte le interfacce, e quindi si lega alla tua interfaccia (ethernet / wireless / ecc ..) e quindi è accessibile anche dal lato lan.
Doon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.