如何在 Internet 上访问 rails 服务器上的本地主机 ruby?

How to access the localhost ruby on rails server in internet?

我正在使用 railsinstaller

http://localhost:3000/wage

下一页

http://localhost:3000/wage/results?hours=23

我尝试访问

myip:3000/wage 

但是显示ERR_CONNECTION_REFUSED

我从 ipconfig-->ipv4

获取 myip

是url错误还是配置问题?

你的开始不错,但仅限于本地 LAN。

  1. 仅限intranet,您可以使用您的LAN ip。 从另一台本地机器(同一 LAN)测试它。希望有用。

如果您的防火墙和机器设置允许您在 Intranet 上查看,则转到下一步:

  1. 互联网, 首先确保您有 public 互联网地址,通过访问 http://api.ipify.org/ > 您将看到您的 public IP 地址。用它来访问您的网站 http://<public_address>:3000/

如果在内网可以,外网不行,需要在路由器中打开3000端口,转发到本地。 (如果您无权访问路由器设置,请让您的管理员帮助您)。

请提供更多详细信息以获得更完整的解决方案。 OS 你在用什么?

编辑:

对于 Windows10,您必须确保在防火墙中打开端口 3000

  • 导航到控制面板、系统和安全以及 Windows 防火墙。
  • Select 高级设置并突出显示左侧窗格中的入站规则。
  • 右键单击入站规则并select新建规则。
  • 添加需要开启的端口,点击下一步
  • 将协议(TCP或UDP)和端口号添加到下一个window中,然后单击下一步。
  • 在 "Profile" 步骤 select 所有 3 个(域、私有、Public)
  • Select 在下一个 window 中允许连接并点击下一步。
  • Select 选择您认为合适的网络类型,然后单击“下一步”。
  • 将规则命名为有意义的名称(例如:允许端口 3000 上的传入连接)并单击“完成”。

要更改默认的 3000 端口,请使用:

rails server -p 8080 更改端口

rails server -b 0.0.0.0绑定0.0.0.0地址

更新:

服务器启动时会输出到控制台,address:port它会监听。例子: Listening on tcp://0.0.0.0:3000 作为开发服务器,它可以设置为仅侦听本地主机请求。

要覆盖该设置,请使用:

rails server -p <3030> -b 0.0.0.0 这将监听端口 3030 上的所有传入连接

有关 -p-b 的更多详细信息,请参阅帮助:

$ rails server -h
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: localhost
    -c, --config=file                Uses a custom rackup configuration.
    -d, --daemon                     Runs server as a Daemon.
    -e, --environment=name           Specifies the environment to run this server under (test/development/production).
                                    Default: development
    -P, --pid=pid                    Specifies the PID file.
                                    Default: tmp/pids/server.pid
    -C, --[no-]dev-caching           Specifies whether to perform caching in development.
                                    true or false

    -h, --help                       Shows this help message.