ngrok是什么我这边就不多介绍了,百度一找一大堆。你可以把它理解为内网穿透的工具。(简而言之就是将内网IP映射成对外可访问的域名)
Ngrok使用流程如下:
从https://ngrok.com/ 下载ngrok ,然后注册一个账号并获取官方分配一个密钥
密钥获取方式:
使用cmd 到ngrok.exe的目录,命令: ngrok -authtoken 密钥 -subdomain 二级域名 端口
访问http://aaa.ngrok.com就可以了。
访问https://ngrok.com/dashboard 可以管理密钥。
---------------------------------------------------分割线--------------------------------------------------------------------
介绍的很简略,因为上面的其实并不是正题,还有更简单的实现方式,就是使用国内的Ngrok,网速更快,配置方面也更简单。下面介绍下国内的 Sunny-Ngrok使用教程:
国内Ngrok官网:https://www.ngrok.cc/
注册账号后,可以直接添加隧道(此处我使用的是google浏览器):
关于开通隧道已经有详细的教程了:https://www.sunnyos.com/article-show-67.html
附上我开通的隧道截图:
下一步就是点击上图的客户端下载:https://www.ngrok.cc/download.html,下载自己系统对应的客户端。
解压之后执行 “Sunny-Ngrok启动工具.bat”脚本,输入你的隧道ID,出现如下界面:
此时只要访问http://wangcw.free.ngrok.cc就会转发至我本机的127.0.0.1:18080。
————————————————
ngrok的使用步骤如下:
1. 进入ngrok官网(https://ngrok.com/),注册ngrok账号并下载ngrok;
2. 根据官网给定的授权码,运行如下授权命令;
授权码
授权命令
ngrok authtoken 授权码
授权码和账户是绑定的,在授权命令运行后,ngrok会将授权码保存在~/.ngrok2/ngrok.yml中,所以只需要运行一次,以后都可以使用。
3. 根据需要,运行命令开发端口。
ngrok http 8080
需要注意的是,这里的端口8080可以根据需要替换成其他端口。这条命令的意思是将本地8080端口对应的服务暴露到外网中。
运行后将出现如下结果:
Forwarding,第一个是http协议对应的外网地址,第二个是https协议对应的外网地址。这样,凡是访问http://110357ac.ngrok.io的请求都将发送到localhost:8080。
4.其他
每次启动ngrok都会分配一个新的外网域名,所以需要每次更换配置或者更换访问地址,不太方便。当然,ngrok也提供了解决方法,那就是付费,可以设置固定域名。
内网穿透 — 本地服务暴露到外网
因为开发的原因,总是需要临时将自己的服务暴露在外网。这个时候,在众多工具当中,发现一个小巧的 ngrok,点击这里 ➡️https://ngrok.com/download 先下载一个吧。
安装
因为我是苹果电脑,所以我选择了 Download for MacBook OSX 的版本,于是下载好的文件:
$ ls ngrok*
ngrok-stable-darwin-amd64.zip
可以解压安装了,我习惯将这些独立的小程序直接放在 /usr/local/bin 目录下。
$ unzip ngrok*.zip
$ mv ngrok /usr/local/bin/
这里的二进制文件 ngrok,你有可能需要 root 权限,自行用 sudo 解决吧。
检查是否安装好了。
$ ngrok -v
ngrok version 2.3.34
看到版本,即是安装成功。
配置工具的鉴权(Token)
点击这里 ➡️https://dashboard.ngrok.com/auth 登录到管理后台,没有账号的话,选用 Github 的三方登录是可以的。你就可以看到一个带有Token的命令,很像:
$ ngrok authtoken PUT_YOUR_TOKEN_HERE
对外网暴露内网服务
假设哈,我们已经开发了一个网页,并且启动在了 8000 端口上,先本地启动一下服务:
$ python -m SimpleHTTPServer 8000
Serving HTTP on 0.0.0.0 port 8000 ...
本地浏览器访问一下 http://localhost:8000 可以正常工作的话,那么开始把它暴露到外网上:
ngrok http 8000
你就能到这个
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account Wang Xiaoqiang (Plan: Free)
Version 2.3.34
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://701d5f7c.ngrok.io -> http://localhost:8000
Forwarding https://701d5f7c.ngrok.io -> http://localhost:8000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
那么这个 Forwarding URL 就可以访问你自己的本地服务了哟:http://701d5f7c.ngrok.io。
Have Fun!
有任何疑问,欢迎交流,希望对日常的开发工作有所帮助哈。
————————————————