Ngrok中文文档

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请求和响应

Ngrok中文文档_第1张图片
请求响应
重播请求

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

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

Ngrok中文文档_第2张图片
重播请求
请求身体验证

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

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

Ngrok中文文档_第3张图片
请求身份验证
安装你的Authtoken

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

安装你的authtoken

   ngrok 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目标。
Ngrok中文文档_第4张图片
  • 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中文文档)