Połącz się z lokalnie zbudowanym serwerem Jekyll za pomocą urządzeń mobilnych w sieci LAN

89

Po użyciu jekyll servena jednym komputerze konfigurowany jest serwer WEBrick i można uzyskać dostęp do witryny z localhost:4000tego konkretnego komputera.

Zastanawiam się jednak, jak uzyskać dostęp do tego serwera WWW z innych maszyn w sieci LAN, zwłaszcza dla urządzeń mobilnych? Próbuję przetestować witrynę jekyll na urządzeniach mobilnych przed wysłaniem kodu do Github.

Yi Zeng
źródło

Odpowiedzi:

188

Spróbuj, jekyll serve --host=0.0.0.0gdy wywołasz Jekyll w wierszu poleceń.

To spowoduje, że serwer HTTP Jekyll powiąże się ze wszystkimi dostępnymi adresami IP, a nie tylko z localhost.

Możesz również dodać to do swojego pliku _config.ymlwith host: 0.0.0.0. GitHub po prostu zignoruje to, gdy naciskasz, więc jest bezpieczny w użyciu, jeśli nie masz nic przeciwko otwartemu dostępowi do swojej pracy w sieci.


Bez --host=0.0.0.0Jekyll podczas uruchamiania wyświetli się coś takiego:

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

Ale z --host=0.0.0.0(lub host: 0.0.0.0in _config.yml) zauważysz, że nasłuchuje na wszystkich interfejsach (reprezentowanych przez 0.0.0.0), a nie tylko na interfejsie pętli zwrotnej (reprezentowanym przez 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. 

Jeśli nadal nie możesz uzyskać dostępu do serwera, może to oznaczać, że firewall go zatrzymuje. Tymczasowo wyłącz zaporę lub dodaj regułę przekierowania portów dla portu 4000.


Gdy Jekyll odpowiednio nasłuchuje na wszystkich interfejsach, możesz uzyskać do niego dostęp z urządzenia mobilnego za pomocą adresu IP sieci LAN (pobranego z czegoś podobnego ifconfiglub w ipconfigzależności od systemu operacyjnego).

pauljz
źródło
3
Pierwsza część działała zgodnie ze wskazówkami (jekyll 2.5.3), nie testowała drugiej części (o wpisie w pliku konfiguracyjnym).
j4v1
7
Aby następnie uzyskać dostęp do witryny, na innym komputerze / urządzeniu mobilnym wpisz adres IP komputera obsługującego hosting. (Coś prawdopodobnie jak 192.168.1.5:4000). A oto sposób na znalezienie swojego adresu IP: stackoverflow.com/a/13322549/1400991
Ross R
Jeśli próbujesz uruchomić serwer na Chromebooku pod Croutonem , będziesz musiał również uruchomić, /sbin/iptables -P INPUT ACCEPTaby otworzyć zaporę. Opcjonalnie dodaj tę linię do, /etc/rc.localjeśli chcesz, aby zapora była domyślnie otwarta po wejściu do chroot. Zobacz także oficjalne instrukcje .
Alex Yursha
1
ale powoduje awarię wszystkich obrazów z {{site.url}}, ponieważ wskazują na adres http: 0.0.0.0: 4000, który nie otwiera się w głównym komputerze
GorvGoyl
1
To nie daje pełnej odpowiedzi na pytanie, jakiego adresu użyć? localhost: 4000 lub 0.0.0.0:4000 czy coś innego?
Andy
-8

Zakładając, że Twoje urządzenie mobilne jest podłączone do tej samej sieci LAN, co komputer deweloperski.

  1. Sprawdź adres IP sieci LAN swojego komputera deweloperskiego. Zwykle coś takiego: 192.168.0.XXX. Gdzie .XXX to unikatowe ostatnie 3 cyfry adresu IP LAN twojego urządzenia deweloperskiego.

  2. Skieruj przeglądarkę internetową swojego urządzenia mobilnego na: http://192.168.0.XXX:4000

Tak właśnie robię to na swoim laptopie i iPhonie dla Jekyll dev.

JW
źródło
2
Czy muszę określić --host=0.0.0.0podczas uruchamiania serwera? (Nie mogę tego teraz przetestować.)
Yi Zeng
@ user1177636, nie, nie jest konieczne, po prostu jekyll serve. Spowoduje to uruchomienie serwera WebBrick, który będzie dostępny dla dowolnego lokalnego urządzenia lub maszyny. BTW, zakładam, że używasz Jekyll> = 1.0.0, polecenia są różne dla starszych wersji. Uruchom, jekyll --serverjeśli używasz <= 0.12.1.
JW
Jakoś to nie zadziałało bez określenia --host = 0.0.0.0. Jakie były ustawienia zapory, których użyłeś, aby to naprawić?
skjoshi
2
U mnie też bieganie jekyll servenie wyszło. Moje urządzenie mobilne nie mogło uzyskać dostępu do serwera, dopóki nie zadzwoniłem jekyll serve --host=0.0.0.0. Czy ktoś ma na to wytłumaczenie?
fraxture
2
@fraxture jekyll domyślnie nasłuchuje na hoście lokalnym (127.0.0.1), jest dostępny tylko przez adapter sprzężenia zwrotnego na komputerze, na którym jest uruchomiony. mówiąc mu, aby związał się z 0.0.0.0, mówisz mu, aby wiązał się ze wszystkimi interfejsami, a tym samym wiąże się z twoim interfejsem (ethernet / bezprzewodowy / itp.), a zatem jest również dostępny po stronie sieci LAN.
Doon