Ruby 使用LAN中的移动设备连接到本地构建的Jekyll服务器

Ruby 使用LAN中的移动设备连接到本地构建的Jekyll服务器,ruby,github,jekyll,webrick,Ruby,Github,Jekyll,Webrick,在一台计算机上使用jekyll-serve后,将设置一台WEBrick服务器,并可在此特定PC上从localhost:4000访问该站点 但是,我想知道如何从局域网中的其他机器(尤其是移动设备)访问此web服务器?在将代码推送到Github之前,我正在尝试在移动设备上测试jekyll站点。在命令行上调用jekyll时,尝试使用jekyll服务--host=0.0.0.0 这将使Jekyll的HTTP服务器绑定到所有可用的IP,而不仅仅是绑定到localhost 您还可以使用主机:0.0.0.0将

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

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

在命令行上调用jekyll时,尝试使用jekyll服务--host=0.0.0.0

这将使Jekyll的HTTP服务器绑定到所有可用的IP,而不仅仅是绑定到
localhost

您还可以使用
主机:0.0.0.0
将其添加到您的
\u config.yml
。GitHub在推送时会忽略这一点,所以如果您不介意在网络上公开访问您的工作,那么使用它是安全的


如果不使用
--host=0.0.0.0
Jekyll将在您启动时输出如下内容:

$ jekyll serve
[...]
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
但是使用
--host=0.0.0.0
(或
\u config.yml
中的
主机:0.0.0.0
)时,您会注意到它正在侦听所有接口(由
0.0.0
表示),而不是只侦听环回接口(由
127.0.0.1
表示)

如果您仍然无法访问服务器,则可能有防火墙阻止它。暂时禁用防火墙,或为端口4000添加端口转发规则



一旦Jekyll正确地监听了所有接口,您就可以使用LAN IP地址(根据您的操作系统,从
ifconfig
ipconfig
之类的内容检索)从移动设备访问该接口。

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

  • 确定开发机器的LAN IP地址。通常是:192.168.0.XXX。其中.XXX是dev机器LAN IP的唯一最后3位数字

  • 将移动设备的web浏览器指向:


  • 这就是我在笔记本电脑和iPhone上为Jekyll dev所做的操作。

    启动服务器时是否需要指定
    --host=0.0.0.0
    ?(我现在无法测试。)@user1177636,不,不需要,只需
    jekyllservice
    。这将启动WebBrick服务器,可用于任何本地设备或机器。顺便说一句,我假设您运行的是Jekyll>=1.0.0,对于旧版本,命令是不同的。如果在没有指定--host=0.0.0.0的情况下使用它对我来说不起作用,请运行
    jekyll--server
    。你用来修复它的防火墙设置是什么?对我来说,运行
    jekyllserve
    也不起作用。我的移动设备无法访问服务器,除非我按了
    jekyll-serve--host=0.0.0
    。有人对此有解释吗?@fraxture-jekyll-serve默认在本地主机(127.0.0.1)上侦听,它只能通过运行它的机器上的环回适配器访问。通过告诉它绑定到0.0.0.0,您告诉它绑定到所有接口,因此它绑定到您的(以太网/无线等)接口,因此也可以通过lan端访问。第一部分按照指示工作(jekyll 2.5.3),没有测试第二部分(关于配置文件中的条目)。要访问您的站点,在您的其他计算机/移动设备上,键入进行托管的计算机的ip。(大概是192.168.1.5:4000)。这里有一种方法可以找到你的ip:但是它会用{{site.url}破坏所有的图像,因为它们指向http:0.0.0.0:4000,而http:0.0.0:4000并没有在主机中打开。这并不能完全回答这个问题,要使用的地址是什么?localhost:4000或0.0.0.0:4000或其他什么?@Andy,这是你电脑的局域网IP地址,例如192.168.0.100:4000。
    $ jekyll serve --host=0.0.0.0
    [...]
    Server address: http://0.0.0.0:4000/
    Server running... press ctrl-c to stop.