ngrok能够使运行在你机器上的服务到网络上,仅仅告诉narok你的服务监听端口即可;
如果你不知道你的服务监听端口,他可能是80,即http的默认端口
举例:展示一个你机器上80端口的web应用到网络上
ngrok http 80
当你启动ngrok,它会展示一个页面在你的终端,上面有这个公众通道url,其他的状态和一些关于在你这个通道上的连接的度量信息;
ngrok by @inconshreveable
T
Tunnel Status online
V
Version 2.0/2.0
W
Web Interface http://127.0.0.1:4040
F
Forwarding http://92832de0.ngrok.io -> localhost:80
F
Forwarding https://92832de0.ngrok.io -> localhost:80
C
Connnections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
检查你的通道
ngrok提供一个即时的web页面,通过这个你可以查看在你这个通道里边运行的所有的http联通情况,当你启动ngrok之后,只需要在浏览器打开http://localhost:4040,就可以检查请求明细
通过公共的url来请求,之后,回头看这个监控页面,你可以看到所有的请求和响应明细,包含时间,持续时间,请求头,查询参数和请求负载,也就是在这条线路上的字节大小;
重新请求:
通过外部开源的api发布的钩子,会经常会放慢你的开发周期通过要求你做一些工作,比如拨号,触发一个钩子请求,ngrok可以让你重发任何请求通过一个点击,快速的提升你的迭代周期,点击在web监控页面上任意一个请求右上角的Replay按钮来重发;
请求体校验:
ngrok对于在网络上应用的绝大多数的通用数据互换格式有特殊的支持,任何在请求或者响应体中的xml或者json的数据都会给你打印出来,并且检查数据格式错误;
安装你的鉴权token
ngrok服务的许多先进特性在下面版面中都有描述,下面的链接引导你去注册一个用户;一旦创建,你需要在你的窗口用authtoken配置ngrok,这样的话你就能看到只对注册账号开放的特性,ngrok有一个简单的authtoken命令使得这很简单,下面,
所有的authtoken命令需要做的新增或者修改authtoken属性在你的ngrok配置文件中https://ngrok.com/docs#config
安装authtoken:
ngrok authtoken <YOUR_AUTHTOKEN>
http通道:
定制的子域名
ngrok分配随机的十六进制的名字给为你打开的http通道,应用对于一个单独的是完全可以的,但是当你要在一个黑客或者要和一个 third-party网络系统结合的时候,它会非常令人头疼,如果这个通道的名字变化了或者读起来比较困难的的话,你可以通过-subdomain来为你的通道url特别订制一个子域名;
ngrok http -subdomain=inconshreveable 80
ngrok by @inconshreveable
.
...
F
Forwarding http://inconshreveable.ngrok.io -> 127.0.0.1:80
F
Forwarding https://inconshreveable.ngrok.io -> 127.0.0.1:80
用来保护你的通道的密码:
可以猜到你的通道url的人都能访问你的web项目,除非你通过密码来保护,
你可以让你的通道变得安全,通过-ahth分支命令,它会把你设定的用户密码作为所有请求的参数,
ngrok http -auth="username:password" 8080
定制域名的通道(白色标题请求)
ngrok.io作为一个子域名出现来代替你的通道,你可以在你的域名的基础上运行ngrok通道,为了在dev.example.com上运行一个通道,依照下面的步骤:
1、键入dev.example.com作为一个预定的域名在你的ngrok.com dashboard中
这样能保证没有人能在他们自己的通道中使用你的定制域名;
2 、在你的面板中,点击CNAME图标来复制你的CNAME目标;
3 、创建一个dns,CNAME记录从dev.example.com到你的CNAME目标中,在这个例子中,我们会把这个CNAME记录指向2w9c34maz.cname.ngrok.io
4、通过-hostname命令分支执行ngrok并且把你的域名名称指定作为参数
在制定的域名上运行ngrok
ngrok http -hostname=dev.example.com 8000
通过https请求访问定制域名是可以的,但是证书会不匹配,如果你有一个TLS证书,尝试用tls通道;
禁用检查:
ngrok记录每一个通过你的通道的为了检查和重发的http请求和响应,当这个真的对开发有作用的时候,当你正在生产的服务上使用ngrok的时候,你可能希望禁用它,为了安全和性能;使用-inspect命令来禁用在你通道上的检查;
ngrok http -inspect=false 80
重写主机标题头
当转发到一个本地端口时,ngrok一点都没有更新打开的htp请求头,他们被复制到你的服务中,就像他们接收到的一样,一些使用主机标题来决定访问哪个开发站点的应用,比如WAMP,MAMP和power;基于这个原因,ngrok可以更新请求头来重写你的请求,使用-host-header来重写进来的http请求;
如果重写被制定,这个主机标题江北重写来匹配转发地址的主机名部分,任何其他值将会引起整个标题头被重写成另一个值;
ngrok http -host-header=rewrite site.dev:80
只有http或者https的通道
默认的,当ngrok运行一个http通道的时候,它会打开一个端点,为http和http交通;如果你想只针对http或者https通道,你可以切换这个动作使用-bind-tis命令;
例如:监听http通道
ngrok http -bind-tls=false site.dev:80
例如:监听http和https通道
ngrok http -bind-tls=true site.dev:80