ngrok 微信接口开发利器

由于开发微信公众号项目,经常需要将本地部署的接口让外网能直接调用到,偶然发现还有个叫ngrok的神器专门做了这件事,不但提供了一个在外网能够安全的访问内网Web主机,还能捕获所有请求的http内容,方便调试,甚至还支持tcp层端口映射。支持Mac OS X,Linux,Windows平台。

1. ngrok下载运行

体积很小,官网下载后直接解压得到一个二进制文件,

在shell中执行./ngrok 80即可

,默认会分配随机的二级域名来访问,转发到本机的80端口。可以通过-help参数来查看详细的说明,运行后如下提示:

我这里是使用了自定义二级域名,意味着访问http://steven-mbp.ngrok.com就如同访问内网的http://127.0.0.1:8080,很方便吧。通过ngrok提供的管理界面(127.0.0.1:4040)可以清楚的看到当前有哪些连接,以及请求的url,可以进行replay。

2. ngrok常用示例

1. 采用自定义二级域名steven-mbp.ngrok.com转发到本机的8080端口。

./ngrok -subdomain steven-mbp 8080

2. tcp端口转发,当然外网端口是随机分配的。

./ngrok -proto=tcp 22

3. 转发到局域网其他的机器

./ngrok 192.168.0.1:80

4. 绑定顶级域名(付费才可用),在dashboard中添加域名,将域名cname解析到ngrok.com即可。

./ngrok -hostname test.dorole.com 8080

3. ngrok配置文件

ngrok可以将参数写到文件中,默认是放在~/.ngrok。例如:

这里定义了三个隧道,client表示转发http到本机8080,同时要求验证,ssh表示支持远程访问,第三个是绑定了域名转发到9090。这时候只需要一个./ngrok start client ssh test.dorole.com即可快速启动这三个隧道服务。

每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port,每个隧道必须有proto参数来指定本地地址和端口。auth参数用于在http(s)中身份认证,而remote_port用于在tcp隧道中指定远程服务器端口。如果没有配置subdomain参数,ngrok会默认一个二级域名与隧道节点一样的名字。

4. 配置文件中的其他参数

authtoken用于设置登录ngrok的授权码,可以在ngrok首页的dashboard中查看到。inspect_addr用于设置监听ip,比如设置为0.0.0.0:8080意味着监听本机所有ip的8080端口上。ngrok也支持自己架设ngrokd服务器,在配置中通过server_addr:“dorole.com:8081″来指定自己搭建的服务器地址。设置trust_host_root_certs:true来支持TLS加密协议的证书信任。

下载地址:

链接:http://pan.baidu.com/s/1jIaJFfw 密码:ka13

官网:https://ngrok.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,169评论 19 139
  • 需要先安装go环境设置环境变量12345 # 可以根据自己需要调整路径 echo 'export GORO...
    加菲猫Jack阅读 2,028评论 3 1
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,659评论 2 56
  • 一:ngrok的使用 基于windows 1:为什么要使用ngrok 在微信开发的时候 需要填写与微信服务器相连接...
    whtsup阅读 2,954评论 1 1
  • 我在花瓣上 刻下你的名字 悄悄地 放在你的日记里 希望 有一天 你打开泛黄的日记本 还能想起 那是谁的字迹
    我心依然_580a阅读 361评论 49 50