使用 ngrok 实现内网穿透访问内网web服务

科技   2024-12-03 15:50   河北  

1.什么是ngrok

ngrok是一个使用Go编程语言编写的开源网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL

ngrok同时也是一个反向代理服务,它是一种内网穿透的解决方案。

通过ngrok,网络开发人员可以将自己正在开发的网页或者API暴露到互联网上,方便进行演示、测试和共享等。它允许用户通过公网访问内网服务,支持HTTPHTTPSTCP等多种协议。

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

这里为了测试方便,直接使用使用pythonhttp.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访问 ngrokWeb 界面,可以看到服务状态,暴漏的内网服务,连接请求信息等。

其中,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是一款强大而灵活的内网穿透工具,对于网络开发人员和需要进行内网服务共享的用户来说非常有帮助。但在使用过程中也需要注意安全问题,合理配置参数和限制访问权限以降低风险。


Python运维实践
Python运维实践,专注于互联网技术的总结与交流,内容涉及Python自动化运维、Django框架、园区网络技术、linux云计算、系统架构及网络空间安全等知识的实践与分享。
 最新文章