本机代码部署外网访问神器-Ngrok

作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供它人体验评价或协助调试等等,通常我们会这么做:
1.找到一台运行于外网的Web服务器
2.服务器上有网站所需要的环境,否则自行搭建
3.将网站部署到服务器上
4.调试结束后,再将网站从服务器上删除

那么今天给大家介绍一款可以轻松解决将本机代码部署外网访问的神器-ngrok
功能简介:
ngrok创建了一个可以通过外网访问本机的通道,你可以把这个地址发送给其他人,通过外网访问你正在开发的而又没有进行发布的站点。
ngrok通过通道捕获请求信息, 显示HTTP信息,请求/响应字节,解析http相应头和表单信息,JSON或XML语法检查等等信息。

提供windows, linux, mac版本,官网地址:https://ngrok.com/

创建一个简单的rails项目,在3000端口启动。

下载解压后,切换到相应目录,执行./ngrok 3000即可,默认会分配随机的二级域名来访问,转发到本机的3000端口。可以通过-help参数来查看详细的说明

Forwarding   https://xxxxxxxx.ngrok.com -> 127.0.0.1:3000
直接访问https://xxxxxxxx.ngrok.com就可以看到本地的网站内容了

通过ngrok提供的管理界面(127.0.0.1:4040)可以清楚的看到当前有哪些连接,以及请求的url,可以进行replay

ngrok使用进阶:
先到官网注册一个帐号,登录后,会生成一个auth token,在shell中执行
ngrok -authtoken 2xEw15Lq725a-WChm78C(这个是我虚构的, 不要尝试用我的哦) 3000
完成之后,就不需要每次都进行验证了,就可以享受更多ngrok带给我们的特性了

1. 采用自定义二级域名steven-mbp.ngrok.com转发到本机的3000端口。
./ngrok -subdomain michael_test 3000
Forwarding                    http://michael_test.ngrok.com -> 127.0.0.1:3000
Forwarding                    https://michael_test.ngrok.com -> 127.0.0.1:3000


2. tcp端口转发,这意味着可以在外网ssh到本机了,当然外网端口是随机分配的。
./ngrok -proto=tcp 22
Forwarding                    tcp://ngrok.com:36148 -> 127.0.0.1:22

3. 转发到局域网其他的机器
./ngrok 192.168.0.1:3000

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


ngrok配置文件:
ngrok可以将参数写到文件中,默认是放在~/.ngrok。例如:
tunnels:
  client:
    auth: "user:password"
    proto:
      https: 3000
  ssh:
    proto:
      tcp: 22
  test.michael.com
    proto:
      http: 3001

这里定义了三个隧道,client表示转发http到本机3000,同时要求验证,ssh表示支持远程访问,第三个是绑定了域名转发到3001。这时候只需要一个./ngrok start client ssh test.michael.com即可快速启动这三个隧道服务
每一个隧道的配置节点都有五个参数,proto,subdomain,auth,hostname和remote_port,每个隧道必须有proto参数来指定本地地址和端口。auth参数用于在http(s)中身份认证,而remote_port用于在tcp隧道中指定远程服务器端口。如果没有配置subdomain参数,ngrok会默认一个二级域名与隧道节点一样的名字

有了这个东西,还可以本地轻松搞微信开发,敬请关注下次分享

欢迎持续关注:ruby程序员:

欢迎加入线下qq交流群:


本机代码部署外网访问神器-Ngrok


本机代码部署外网访问神器-Ngrok
 
 

 

你可能感兴趣的:(微信开发,Ngrok)