LAN内のモバイルデバイスを使用して、ローカルに構築されたJekyllサーバーに接続します


89

jekyll serve1台のマシンで使用した後、WEBrickサーバーがセットアップされlocalhost:4000、この特定のPCからサイトにアクセスできます。

しかし、特にモバイルデバイスの場合、LAN内の他のマシンからこのWebサーバーにアクセスする方法を知りたいのですが。コードをGithubにプッシュする前に、モバイルデバイスでjekyllサイトをテストしようとしています。

回答:


188

jekyll serve --host=0.0.0.0コマンドラインでJekyllを呼び出すときに試してください。

これにより、JekyllのHTTPサーバーは、だけでなく、使用可能なすべてのIPにバインドされlocalhostます。

また、あなたにこれを追加することができます_config.ymlhost: 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がすべてのインターフェイスで適切にリッスンすると、LAN IPアドレスを使用してモバイルデバイスからこれにアクセスできます(オペレーティングシステムのようなものから、ifconfigまたはipconfigオペレーティングシステムに応じて取得されます)。


3
最初の部分は示されているように機能し(jekyll 2.5.3)、2番目の部分はテストしませんでした(構成ファイルへのエントリについて)。
j4v1 2015年

7
次に、他のコンピューター/モバイルデバイスでサイトにアクセスするには、ホスティングを実行しているコンピューターのIPを入力します。(おそらく192.168.1.5:4000のようなもの)。そしてここにあなたのIPを見つける方法があります:stackoverflow.com/a/13322549/1400991
ロスR

ChromebookのCroutonでサーバーを実行しようとしている場合は/sbin/iptables -P INPUT ACCEPT、ファイアウォールを開くためにも実行する必要があります。/etc/rc.localchrootを入力したときにファイアウォールをデフォルトで開く場合は、オプションでこの行を追加します。公式の説明も参照してください。
Alex Yursha 2017年

1
しかし、メインマシンで開かれていないhttp:0.0.0.0:4000を指しているため、{{site.url}}ですべての画像がクラッシュしています
GorvGoyl 2018

1
これは質問に完全には答えません、使用するアドレスは何ですか?localhost:4000または0.0.0.0:4000または他の何か?
アンディ

-8

モバイルデバイスが開発マシンと同じLANに接続されていると仮定します。

  1. 開発マシンのLANIPアドレスを確認します。通常は192.168.0.XXXのようなものです。ここで、.XXXは、開発マシンのLANIPの一意の下3桁です。

  2. モバイルデバイスのWebブラウザを次の場所にポイントします:http//192.168.0.XXX4000

それが私のラップトップとiPhoneでJekylldevのためにそれを行う方法です。


2
--host=0.0.0.0サーバーの起動時に指定する必要がありますか?(現時点ではテストできません。)
Yi Zeng

@ user1177636、いいえ、必要ありませんjekyll serve。ただ。これにより、ローカルデバイスまたはマシンで使用できるWebBrickサーバーが起動します。ところで、私はあなたがJekyll> = 1.0.0を実行していると仮定しています、コマンドは古いバージョンでは異なります。jekyll --server<= 0.12.1を使用する場合に実行します。
JW 2013年

どういうわけか、-host = 0.0.0.0を指定しないと機能しませんでした。それを修正するために使用したファイアウォール設定は何でしたか?
skjoshi 2015年

2
私にとっても、ランニングjekyll serveはうまくいきませんでした。電話をかけない限り、モバイルデバイスはサーバーにアクセスできませんでしたjekyll serve --host=0.0.0.0。誰かがこれについて説明がありますか?
fraxture 2015年

2
@fraxture jekyllサーブは、デフォルトでlocalhost(127.0.0.1)でリッスンし、実行しているマシンのループバックアダプターを介してのみアクセスできます。0.0.0.0にバインドするように指示すると、すべてのインターフェイスにバインドするように指示されます。したがって、(イーサネット/ワイヤレスなど)インターフェイスにバインドされるため、LAN側からもアクセスできます。
ドゥーン2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.