1.什么是ngrok
ngrok
是一个使用Go
编程语言编写的开源网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL
。
ngrok
同时也是一个反向代理服务,它是一种内网穿透的解决方案。
通过ngrok
,网络开发人员可以将自己正在开发的网页或者API
暴露到互联网上,方便进行演示、测试和共享等。它允许用户通过公网访问内网服务,支持HTTP
、HTTPS
、TCP
等多种协议。
2.工作原理
ngrok
的工作原理如下:
1)在本地机器上启动ngrok
,并指定一个或多个端口。
2)ngrok
会在本地机器上建立一个隧道,这个隧道连接到ngrok
服务器。
3)ngrok
服务器会给隧道分配一个公开的URL
,并将所有发送到这个URL
的请求转发到本地机器上。
4)本地应用程序处理请求并发送响应,响应通过ngrok
隧道返回到原始请求者。
3.安装ngrok
这里以WINDOWS10
环境为例:
3.1下载ngrok
进入官网:
https://ngrok.com/
如下图:
下载一个无需任何运行时依赖的独立可执行文件,并完成账户注册,后面注册时需用到:
3.2解压文件
将得到的文件ngrok-v3-stable-windows-amd64.zip
解压到指定目录:D:\mysoft
3.3添加身份令牌
进入刚才解压指定目录下:D:\mysoft\ngrok-v3-stable-windows-amd64
运行以下命令以将您的身份验证令牌添加到默认的 ngrok.yml 配置文件中:
ngrok config add-authtoken 2phCQe45TFbYAXtRnBbMdY2P4nV_6sAQJpEjKKycea1aYJ4gj
D:\mysoft\ngrok-v3-stable-windows-amd64>ngrok config add-authtoken 2phCQe45TFbYAXtRnBbMdY2P4nV_6sAQJpEjKKycea1aYJ4gj
Authtoken saved to configuration file: C:\Users\Administrator\AppData\Local/ngrok/ngrok.yml
D:\mysoft\ngrok-v3-stable-windows-amd64>
4.启动ngrok
这里为了测试方便,直接使用使用python
的http.server
启动一个http
服务:
然后,在ngrok目录下,执行:ngrok http 8080
,来启动 ngrok
:
D:\mysoft\ngrok-v3-stable-windows-amd64>ngrok http 8080
启动后,ngrok
会生成一个公共 URL
,可以在命令行中看到如下信息:
通过http://127.0.0.1:4041
访问 ngrok
的 Web
界面,可以看到服务状态,暴漏的内网服务,连接请求信息等。
其中,https://fcd0-111-227-219-42.ngrok-free.app/
就是暴露在公网上可以访问的URL。
https://fcd0-111-227-219-42.ngrok-free.app/
5.停止 ngrok
要停止 ngrok
,可以在命令行中按 Ctrl + C
。
6.注意事项
注册与认证:使用ngrok
前需要在其官网注册账号并获取authtoken
,以进行身份验证和授权。
配置参数:用户需要合理配置ngrok
的参数,以避免性能瓶颈或安全漏洞。
访问权限:在生产环境中使用ngrok
时,应限制只有授权的用户才能使用,以避免安全漏洞的出现。
综上,ngrok
是一款强大而灵活的内网穿透工具,对于网络开发人员和需要进行内网服务共享的用户来说非常有帮助。但在使用过程中也需要注意安全问题,合理配置参数和限制访问权限以降低风险。