允许公共连接到本地Ruby on Rails Development Server

Dan*_*Dan 60 ruby ruby-on-rails

我正在Windows机器上设置RoR开发环境.我想知道如何设置它,以便我的一些朋友可以访问Web服务器并监控进度?

在任何时间最多只能连接2或3个人.

Jel*_*Cat 188

最简单的方法不需要额外的安装:只需在启动服务器时为您的rails server(或rails s)命令添加一个选项:

rails s --binding=0.0.0.0
Run Code Online (Sandbox Code Playgroud)

0.0.0.0地址的意思是"听从任何地方的请求." 在许多系统上,默认值是127.0.0.1,这意味着"仅侦听来自localhost的请求".

(如果您还没有指定-p--port选项,那么端口应该3000像往常一样.)

  • 这是最好的答案 (21认同)
  • 机器B上的@ slindsey3000使用机器A的IP地址作为URL中的主机名.如果你在linux上运行机器A上的`sudo ifconfig`来学习它的本地IP地址; 如果你在Windows上运行`ipconfig`.本地IP地址可能会以"192.168.XX"或"10.71.XX"开头.所以机器B中的地址栏就像`http://192.168.0.14:3000 /` (5认同)
  • 如果你走这条路,你可能需要配置你的防火墙和/或路由器以允许外部访问 (2认同)

mea*_*gar 24

您可以告诉开发服务器监听您可公开访问的界面:

如果您正在运行服务器rails server,则可以通过-b <ip>或指定要侦听的IP --binding=<ip>.默认情况下,服务器侦听0.0.0.0,即仅侦听本地连接.

Usage: rails server [mongrel, thin, etc] [options]
    -p, --port=port                  Runs Rails on the specified port.
                                     Default: 3000
    -b, --binding=ip                 Binds Rails to the specified ip.
                                     Default: 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

您可以改为查找机器的网络地址并将其绑定到该地址,但您必须转发端口并找出Internet上可公开路由的IP地址; 这超出了Stack Overflow的范围.

  • 0.0.0.0实际上是计算机上的所有连接,因此您无需绑定到特定的IP地址.我一直从手机上连接到我的开发应用程序0.0.0.0,以检查移动布局.可能只需要防火墙上的一个洞. (9认同)

Dav*_*ood 20

localtunnel一个去吧.它是一颗红宝石,所以你不应该有任何问题:

gem install localtunnel
localtunnel 3000
Run Code Online (Sandbox Code Playgroud)

第一次这样做时它会问你一个ssh密钥,但是一旦你有了这个设置,它就会显示你可以分享的公共网址.在指定端口上运行的任何内容都将在该URL上公开.

Showoff-io看起来像一个类似的服务,但我没有使用它所以我无法发表评论.此外,它是付费的,需要注册.

  • localtunnel现在似乎已经失败,试试ngrok (13认同)

Seb*_*nso 6

正如有人建议的那样,使用ngrok.

这很简单.