使用局域网中的移动设备连接到本地构建的Jekyll Server


88

jekyll serve一台计算机上使用后,将设置WEBrick服务器,并且可以从此localhost:4000特定PC上访问该站点。

但是,我想知道如何从LAN中的其他机器(特别是对于移动设备)访问此Web服务器?在将代码推送到Github之前,我正在尝试在移动设备上测试jekyll网站。

Answers:


187

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地址(从类似ifconfigipconfig取决于您的操作系统的名称)从移动设备访问此地址。


3
第一部分按指示进行操作(jekyll 2.5.3),未测试第二部分(关于配置文件中的条目)。
j4v1 2015年

7
若要访问您的站点,请在另一台计算机/移动设备上,键入进行托管的计算机的IP。(可能类似于192.168.1.5:4000)。这是找到您的IP的方法:stackoverflow.com/a/13322549/1400991
Ross R

如果您尝试在Crouton下的Chromebook上运行服务器,则还必须运行/sbin/iptables -P INPUT ACCEPT以打开防火墙。/etc/rc.local如果要在输入chroot时默认打开防火墙,则可以选择添加此行。另请参阅官方说明
亚历克斯·尤沙

1
但是使用{{site.url}}破坏了所有图像,因为它们指向的是http:0.0.0.0:4000,而该图像未在主机上打开
GorvGoyl

1
这不能完全回答问题,使用的地址是什么?本地主机:4000或0.0.0.0:4000还是其他?
安迪

-8

假设您的移动设备与开发计算机连接到相同的LAN。

  1. 确认开发计算机的LAN IP地址。通常类似于:192.168.0.XXX。其中.XXX是开发人员计算机的LAN IP的唯一后3位数字。

  2. 将您的移动设备的Web浏览器指向:http : //192.168.0.XXX : 4000

这就是我在Jekyll开发人员的笔记本电脑和iPhone上执行此操作的方式。


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 2015年

2
对我来说,跑步jekyll serve也行不通。除非我打电话,否则我的移动设备无法访问服务器jekyll serve --host=0.0.0.0。有人对此有解释吗?
fraxture

2
默认情况下,@ fraxture jekyll在localhost(127.0.0.1)上侦听,它只能通过运行它的计算机上的回送适配器来访问。通过告诉它绑定到0.0.0.0,就是告诉它绑定到所有接口,因此它绑定到您的(以太网/无线/等)接口,因此也可以通过lan端进行访问。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.