Підключіться до локально побудованого сервера Jekyll за допомогою мобільних пристроїв у локальній мережі


90

Після використання jekyll serveна одній машині налаштовується сервер WEBrick, і веб-сайт можна отримати з localhost:4000цього конкретного ПК.

Однак мені цікаво, як отримати доступ до цього веб-сервера з інших машин у локальній мережі, особливо для мобільних пристроїв? Я намагаюся протестувати сайт jekyll на мобільних пристроях, перш ніж надсилати код на Github.

Відповіді:


189

Спробуйте, jekyll serve --host=0.0.0.0коли ви викликаєте Jekyll у командному рядку.

Це змусить HTTP-сервер Jekyll зв’язуватися з усіма доступними IP-адресами, а не просто з localhost.

Ви також можете додати це в ваш _config.ymlз host: 0.0.0.0. GitHub просто буде ігнорувати це, коли ви натискаєте, тому це безпечно використовувати, якщо ви не проти, щоб ваша робота була відкрито доступною у вашій мережі.


Без --host=0.0.0.0Jekyll буде виводитись щось подібне при запуску:

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

Але з --host=0.0.0.0(або host: 0.0.0.0в _config.yml) ви помітите, що він прослуховує всі інтерфейси (представлені 0.0.0.0), а не просто прослуховує інтерфейс зворотного зв'язку (представлений 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. 

Якщо ви все ще не можете отримати доступ до свого сервера, можливо, брандмауер зупиняє його. Тимчасово вимкніть свій брандмауер або додайте правило переадресації портів для порту 4000.


Як тільки Jekyll належним чином прослуховує всі інтерфейси, ви можете отримати доступ до цього з мобільного пристрою за допомогою IP-адреси локальної мережі (отриманої з чогось на зразок операційної системи ifconfigабо ipconfigзалежно від неї).


3
Перша частина працювала, як зазначено (jekyll 2.5.3), не тестувала другу частину (про запис у конфігураційному файлі).
j4v1

7
Щоб потім перейти на ваш сайт, на іншому комп’ютері / мобільному пристрої введіть ip комп’ютера, що робить хостинг. (Щось, мабуть, як 192.168.1.5:4000). І ось спосіб знайти свій ip: stackoverflow.com/a/13322549/1400991
Ross R

Якщо ви намагаєтеся запустити сервер на Chromebook під Crouton, вам також доведеться запустити, /sbin/iptables -P INPUT ACCEPTщоб відкрити брандмауер. Необов’язково додайте цей рядок, /etc/rc.localякщо потрібно, щоб брандмауер був відкритий за замовчуванням при введенні chroot. Див. Також офіційні інструкції .
Алекс Юрша,

1
але всі зображення падає з {{site.url}}, оскільки вони вказують на http: 0.0.0.0: 4000, яке не відкривається в головній машині
GorvGoyl

1
Це не відповідає на запитання повністю, яку адресу використовувати? localhost: 4000 або 0.0.0.0:4000 чи щось інше?
Енді

-8

Припускаючи, що ваш мобільний пристрій підключений до тієї самої локальної мережі, що і ваша машина розробки.

  1. Вкажіть IP-адресу локальної мережі вашого розробника. Зазвичай щось на зразок: 192.168.0.XXX. Де .XXX - це унікальні 3 останні цифри локальної мережі IP вашого розробника.

  2. Наведіть веб-переглядач мобільного пристрою на: http://192.168.0.XXX:4000

Ось як я це роблю на своєму ноутбуці та iPhone для розробника Jekyll.


2
Чи потрібно вказувати --host=0.0.0.0при запуску сервера? (На даний момент я не можу це перевірити.)
І Цзен

@ user1177636, ні, не потрібно, просто jekyll serve. Це запустить сервер WebBrick, який буде доступний на будь-якому локальному пристрої чи машині. До речі, я припускаю, що у вас Jekyll> = 1.0.0, команди відрізняються для старих версій. Запустити, jekyll --serverякщо використовується <= 0.12.1.
JW

Якось це не спрацювало у мене, не вказавши --host = 0.0.0.0. Які налаштування брандмауера ви використовували для його виправлення?
skjoshi

2
І для мене біг jekyll serveне спрацював. Мій мобільний пристрій не зміг отримати доступ до сервера, якщо я не зателефонував jekyll serve --host=0.0.0.0. У когось є пояснення цьому?
дріб

2
@fraxture jekyll обслуговується за замовчуванням прослуховує на localhost (127.0.0.1), він доступний лише через адаптер зворотного зв'язку на машині, на якій він працює. кажучи йому прив'язуватися до 0.0.0.0, ви говорите, щоб він прив'язувався до всіх інтерфейсів, і, отже, він прив'язується до вашого інтерфейсу (Ethernet / бездротовий / і т.д.
Дуон,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.