美文网首页
Ngrok中文文档

Ngrok中文文档

作者: 陈皮的柚子怪 | 来源:发表于2017-08-25 15:46 被阅读0次

    1.入门

    将本地Web服务器暴露给互联网

    ngrok允许您将本地计算机上运行的Web服务器公开到Internet。 告诉ngrok你的网络服务器正在侦听哪个端口。
    如果您不知道Web服务器正在侦听哪个端口,那么它可能是端口80,默认为HTTP。
    示例:将本地计算机的端口80上的Web服务器暴露给Internet

      ngrok http 80
    

    当您启动ngrok时,它将在您的终端中显示一个UI,其中包含您的隧道的公共URL以及有关通过隧道进行连接的其他状态和度量信息。

    ngrok控制台UI

      ngrok by @inconshreveable 
      Tunnel Status           online 
      Version                 2.0/2.0 
      Web Interface           http://127.0.0.1:4040 
      Forwarding              http://92832de0.ngrok.io -> localhost:80 
      Forwarding              https://92832de0.ngrok.io -> localhost:80 
      Connnections            ttl      opn      rt1      rt5      p50      p90
                              0        0        0.00     0.00     0.00     0.00
    
    检查您的流量

    ngrok提供了一个实时的网络用户界面,您可以在其中内省您通过隧道运行的所有HTTP流量。 启动ngrok之后,只需在Web浏览器中打开 http:// localhost:4040 即可查看请求详细信息。
    尝试向您的公开网址发出请求。 之后,回顾检查界面。 您将看到请求和响应的所有详细信息,包括时间,持续时间,头,查询参数和请求负载以及电线上的原始字节。

    详细反思HTTP请求和响应

    请求响应
    重播请求

    开发由外部API发布的Webhook可能会通过要求您进行一些工作(如拨打电话)来触发挂接请求,从而减慢开发周期。 ngrok允许您通过单击重播任何请求,大大加快了迭代周期。 点击Web检查用户界面上任何请求右上角的“ 重播”按钮重播。

    一次点击即可重播任何针对您的隧道式网络服务器的请求

    重播请求
    请求身体验证

    ngrok特别支持在网络上使用的最常见的数据交换格式。 请求或响应主体中的任何XML或JSON数据将自动为您打印并检查语法错误。

    突出显示JSON语法错误的位置

    请求身份验证
    安装你的Authtoken

    在进一步部分描述的ngrok.com服务的许多高级功能要求您注册一个帐户 。 注册后,您需要使用信息显示板上显示的authtoken配置ngrok。 这将授予您访问仅帐户功能的权限。 ngrok有一个简单的'authtoken'命令,使这很容易。 在引擎盖下,所有authtoken命令都是在ngrok配置文件中添加(或修改) authtoken属性。

    安装你的authtoken

       ngrok authtoken <YOUR_AUTHTOKEN> 
    

    2.HTTP隧道

    自定义子域名

    ngrok为您打开的HTTP隧道分配随机的十六进制名称。 这是一次性的个人用途。 但是,如果您在hackathon中显示该URL或与第三方Webhook集成,则如果隧道名称更改或难以阅读,则可能会令人沮丧。 您可以使用-subdomain开关为隧道网址指定自定义子域。

    示例:密码保护您的隧道

       ngrok http -auth="username:password" 8080 
    
    自定义域上的隧道(白标网址)

    您的隧道不会显示为ngrok.io的子域,ngrok.io可以在您的域上运行ngrok隧道。 要在dev.example.com运行隧道,请按照下列步骤操作:

    • ngrok.com信息中心的“保留”选项卡上输入dev.example.com作为保留域。 这样可以确保没有其他人可以使用自己的隧道来劫持您的域名。
    • 在信息中心上,点击“CNAME”图标复制您的CNAME目标。
    • dev.example.com创建一个DNS CNAME记录到您的CNAME目标。 在这个例子中,我们将CNAME记录指向2w9c34maz.cname.ngrok.io
    • 使用-hostname开关调用ngrok,并将自定义域的名称指定为参数。

    示例:在自定义域上运行隧道

      ngrok http -hostname=dev.example.com 8000 
    

    注意:通过HTTPS访问自定义域隧道仍然可以工作,但证书不匹配。 如果您有TLS证书/密钥对,请尝试使用TLS隧道。

    禁用检查

    ngrok记录您的隧道上的每个HTTP请求和响应以进行检查和重播。 虽然这对开发非常有用,但是当您在生产服务上运行ngrok时,您可能希望禁用它以实现安全性和性能。 使用-inspect开关来禁用您的隧道检查。

    示例:没有检查的http隧道

    重写主机头

    转发到本地端口时,ngrok根本不修改隧道HTTP请求,它们在接收到字节时被复制到服务器字节。 一些应用服务器(如WAMP,MAMP和pow)使用Host头来确定要显示的开发站点。 因此,ngrok可以使用修改的主机头重写您的请求。 使用-host-header开关重写传入的HTTP请求。

    如果指定了rewrite ,则Host头将被重写,以匹配转发地址的主机名部分。 任何其他值将导致将Host头重写为该值。

    将主机头重写为“site.dev”

       ngrok http -host-header=rewrite site.dev:80
    

    将主机头重写为'example.com'

       ngrok http -host-header=example.com 80 
    
    仅隧道HTTP或HTTPS

    HTTPS隧道使用ngrok.com证书终止ngrok.com服务器上的所有TLS(SSL)流量。 对于生产级服务,您需要使用自己的TLS密钥和证书对您的隧道流量进行加密。 使用TLS隧道,ngrok非常方便。

    将TLS流量转发到端口443上的本地HTTPS服务器

       ngrok tls -subdomain=encrypted 443 
    

    隧道运行后,尝试使用卷曲进行访问。

    相关文章

      网友评论

          本文标题:Ngrok中文文档

          本文链接:https://www.haomeiwen.com/subject/xagudxtx.html