超好用内网映射神器

本文收录在企业项目实战系列

一、概念用途

1、介绍

  ngrok是非常流行的反向代理服务,可以进行内网穿透,支持80端口以及自定义tcp端口转发。这样你就可以运行本地的程序,而让别人通过公网访问了

  ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放

  

2、为什么要使用ngrok?

作为一个Web开发者,我们有时候会需要临时地将一个本地的Web网站部署到外网,以供他人体验评价或协助调试等等,通常我们会这么做:

  ① 找到一台运行于外网的Web服务器

  ② 服务器上有网站所需要的环境,否则自行搭建

  ③ 将网站部署到服务器上

  ④ 调试结束后,再将网站从服务器上删除

只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱╰(`□′)╯

  

3、有了ngrok之后,世界是如此的美好

① 首先注册并下载ngrok,得到一串授权码

② 运行命令ngrok -authtoken 你的授权码 80,80是你本地Web服务的端口,而之后ngrok会记住你的授权码,直接ngrok 80就OK了

③ 会得到一串网址,通过这个网址就可以访问你本地的Web服务了

  

二、安装

1、官网下载,解包

地址https://link.jianshu.com/?t=https://ngrok.com/download下载, 解压

2、rz 并解包

unzip ngrok-stable-linux-amd64.zip -d /app/

会有一个ngrok 的执行文件

  

三、官网注册账户,获取隧道authtoken

1、注册账户

https://dashboard.ngrok.com/user/signup

2、登录并获取隧道authtoken,且登录后也有详细的教程

3、在linux 上认证隧道authtoken

[root@centos app]# ./ngrok authtoken AuQ3TpQG35JL1HcK5WTM_7666C7RTfjYcZtoQyRHsG

会在/root/.ngrok2/ngrok.yml 下记录隧道authtoken

  

4、./ngrok -h 可以查询命令帮助

(1)注释:

名称:

   ngrok - 将本地端口连接到公共URL并检查流量

描述:

    ngrok将NAT和防火墙后面的本地网络服务暴露给网络

    公共互联网通过安全隧道。分享本地网站,建立/测试

    webhook消费者和自我主持的个人服务。

    每个命令的详细帮助可以通过'ngrok help <command>'来获得。

    打开http:// localhost:4040 for ngrok的Web界面来检查流量。

  

例子:

    ngrok http 80#用于端口80 Web服务器的安全公共URL

    ngrok http -subdomain = baz 8080#port 8080可在baz.ngrok.io

    ngrok http foo.dev:80#隧道到主机:端口而不是本地主机

    ngrok tcp 22#将任意TCP流量隧道到端口22

    ngrok tls -hostname = foo.com 443#将foo.com的TLS流量传送到端口443

    ngrok start foo bar baz#从配置文件启动隧道

  

四、使用ngrok

1、先准备一个web服务和页面

yum -y install httpd

systemctl start httpd

vim /var/www/html/index.html

hello word

  

2、开启ngrok,测试http协议 80端口

(1)开启ngrok 服务,会随机给一个地址,在公网上访问这个地址,即可访问到内网的web服务

[root@centos app]# ./ngrok http 80

  

3、外网访问,成功

  

4、为了安全也可以设置登录账户和密码

[root@master app]# ./ngrok http -auth="along:along" 80

登录web页面,需输入账号密码

5、测试tcp协议 22端口

(1)在内网开启ngrok,指定tcp 22端口

[root@master app]# ./ngrok tcp 22

(2)公网物理机测试

[root@along html]# ssh root@0.tcp.ngrok.io -p11053

 

五、ngrok 其他功能

1、自定义子域名

(1)介绍

因为自动生成的会随机改变,如果想要固定访问域名地址,需要自定义,这个功能需要付费!!!!!!!

举例,新开一个隧道,以`along` 为名称,后面跟Web端口 ngrok http -subdomain=along 8080

  

(2)在自己的ngrok 用户里,自定义域名

① 打开ngrok的面板Reserved(保留的)标签栏, 注册一个想要保留的域名xxx.com

② 点击CNAME按钮,获取DNS CNAME record,也就是后面的xxxx.ngrok.io

  

③ 激活该域名

ngrok http -hostname=xxxx.com 8000

  

2、关闭访问检测

ngrok http -inspect=false '端口号'

  

3、强制访问网址为Http或者https

ngrok http -bind-tls=false site.dev:80

ngrok http -bind-tls=true site.dev:80

  

  

参考文档

ngrok官网使用说明https://link.jianshu.com/?t=https://ngrok.com/

posted @ 2018-01-30 11:37  alonghub  阅读(6826)  评论(1编辑  收藏  举报