前言
相信很多开发者都有这样的需求,需要让外网访问你本地的服务器,方便调试本地代码,或者让别人体验到自己做的应用。那么这时,我们需要做的就是将我们本地的端口映射到一个外网的端口上,也就是内网穿透。常见的解决方案有 Ngrok, frp 等。本文将以 Ngrok 为例,讲述如何使用 Ngrok 进行内网穿透。
Ngrok
Ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。Ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以 Ngrok可以很方便地协助服务端程序测试。Ngrok希望帮人节省更多的时间去编程。只需一个命令,便可将一个本地服务器暴露在NAT或防火墙后面的互联网。
Ngrok入门
首先到 Ngrok官网 进行下载。
安装
解压下载后的安装包,得到一个ngrok.exe文件。
运行
运行ngrok.exe文件,可以看到如下界面,展示的内容有该程序的描述、例子、版本号、作者、命令行。Ngrok是一个命令行应用,通过输入指令,执行相对应的功能。
程序界面
经过上面的步骤,我们已经完成了安装,接下来需要做的就是对ngrok进行配置。我们需要配置authtoken(账户凭证)。这时,我们需要到 Ngrok官网 注册一个账号,然后在用户中心里可以查到我们的authtoken(账户凭证),authtoken是每个用户的身份凭证,请注意保密。
账户凭证
复制我们的用户凭证,并在ngrok命令行中,输入下面的命令,按回车键执行。
(注意:1uNUrxNs20TymL59IbO2pAPdLzS_5HQszBGDQb46QBtUoHMyV这一串要换成你自己的authtoken)
ngrok authtoken 1uNUrxNs20TymL59IbO2pAPdLzS_5HQszBGDQb46QBtUoHMyV
执行成功后,命令行界面中会出现下面的信息。此时,代表配置成功。ngrok程序已经在你的用户目录下,创建一个.ngrok2文件夹,并在文件夹中创建一个配置文件ngrok.yml。
Authtoken saved to configuration file: C:\Users\acer/.ngrok2/ngrok.yml
映射
在命令行界面中,执行下面命令,即将本地端口80映射到外网中,如果需要映射其他端口,只需将80改成相对应的端口即可。
ngrok http 80
执行成功后,会出现如下界面,其中红框标出的,即映射出去的外网地址(http://3c67ddb621b2.ngrok.io)。此时,内网穿透已经完成,此时我们便可通过访问该域名从外网访问本地服务器了。
端口映射结果
注意:该程序需一直保持运行,程序关闭,映射也将关闭。如果需要关闭映射,可以使用ctrl + c 或关闭该界面,进行程序终止。每次重新执行命令,映射外网的域名都会发生改变。如果希望域名不变,可通过开通ngrok的会员服务,具体可在官网进行查看。