推荐一款实现内网穿透的测试神器:Ngrok

简介: 推荐一款实现内网穿透的测试神器:Ngrok

1. 前言


最近手头上的事情较多,推文被搁浅了。


更多关于开源项目实战介绍可查阅:年底特辑:新一代测试平台开源实战项目没尝到新鲜的技术推文,相信很多忠实读者,已经等的有点急不可耐了,为了补偿大家,今天将给大家分享一款神器工具:Ngrok


2. Ngrok是什么


Ngrok是一款实现内网穿透的工具,更专业的解释的话,Ngrok 是一个反向代理工具,它是通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。并且可以捕获和分析所有通道上的流量,便于后期分析和重放。


有些读者可能会问:啥是内网穿透呢?白话来说就是将内网IP映射成对外可访问的域名


3. 为什么要用Ngrok


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

  1. 找到一台运行于外网的Web服务器
  2. 服务器上有网站所需要的环境,否则自行搭建
  3. 将网站部署到服务器上
  4. 调试结束后,再将网站从服务器上删除


只不过是想向朋友展示一下网站而已,要不要这么麻烦,累感不爱了。


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


  1. 首先注册并下载ngrok,得到一串授权码。
  2. 运行命令ngrok -authtoken 你的授权码 80,80是你本地Web服务的端口,而之后ngrok会记住你的授权码,直接ngrok 80就OK了。
  3. 你会得到一串网址,通过这个网址就可以访问你本地的Web服务了。


PS: 笔者在2017年,通过Ngrok结合自主开发的一个监控定位服务,帮一位亲戚追踪到了一个“被落入到传销组织的人口失踪案”。

4. Ngrok安装、使用


1、进入Ngrok官网(https://ngrok.com/),注册Ngrok账号并下载ngrok。(可直接用Github帐号授权登录)

微信图片_20220524095258.png


2、登录成功后(https://ngrok.com/dashboard),进行授权码生成,点击左侧的Auth菜单,进行生成授权码。

微信图片_20220524095329.png


3、根据官网给定的授权码,运行如下授权命令,如下:


./ngrok authtoken 5HNiAMs5vX91K6rSfwkJC_27oaFSaMUPfBi7KobjqHt


授权码和账户是绑定的,在授权命令运行后,ngrok会将授权码保存在~/.ngrok2/ngrok.yml中,所以只需要运行一次,以后都可以使用。


4、根据需要,运行命令开发端口,例如:


ngrok http 8000

需要注意的是,这里的端口8000可以根据需要替换成其他端口。这条命令的意思是将本地8000端口对应的服务暴露到外网中。


微信图片_20220524095400.png


Forwarding,第一个是http协议对应的外网地址,第二个是https协议对应的外网地址。这样,凡是访问 http://4bd4c53e.ngrok.io的请求都将发送到localhost:8000。

5. 实战示例


接下来,我们以之前开发的Django REST API服务作为演示示例,具体如何开发搭建自主的API服务,可查阅:Python利用Django 构建Rest Api: 快速入门教程Python3+ Django3:自动生成Swagger接口文档 这两篇文章都有详细介绍。


1、查看Django REST API项目结构:

(env) ➜  drf_swagger tree -L 2
.
├── api
│   ├── __init__.py
│   ├── __pycache__
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── drf_swagger
│   ├── __init__.py
│   ├── __pycache__
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
5 directories, 15 files



2、修改项目文件中的settings.py文件中的ALLOWED_HOSTS值。


ALLOWED_HOSTS = ['*']


3、运行Django服务。


python manage.py runserver

微信图片_20220524095504.png

4、访问http://127.0.0.1:8000/api/,可查看已添加的API接口。

微信图片_20220524095531.png


5、接着运行`ngrok http 8000`命令,进行内网端口透穿外网映射,如下所示:

微信图片_20220524095609.png


6、此时通过外网设备去访问:http://4bd4c53e.ngrok.io/api/  (外网地址)仍然可以正常访问。

微信图片_20220524095638.png

该地址,已经成功可以被外网所访问。(WIFI、4G网络皆可)


7、除此之后,Ngrok还提供了一个Web管理页面,可以进行监控查看代理转发的所有请求,默认访问:http://127.0.0.1:4040/ 即可。


微信图片_20220524095705.png


点击Status可以查看当前监控的状态:

微信图片_20220524095733.png



8、需要注意的是,每次启动ngrok都会分配一个新的外网域名,所以需要每次更换配置或者更换访问地址,不太方便。当然,ngrok也提供了解决方法,那就是付费,可以设置固定域名。

微信图片_20220524095759.png

如果只是需要简单的外网调试,用Free免费版就足够了,如果需要自定义二级域名的,可以花点小钱,升级到付费版。


6. 最后


除了上述介绍的Ngrok外,还有更简单的实现方式,就是使用国内的Ngrok,名称为 Sunny-Ngrok。网速更快,配置方面也更简单。


国内Ngrok官网:https://www.ngrok.cc/


注册账号后,可以直接添加隧道,如果不想花钱的,可以直接选择香港的Ngrok服务器。

微信图片_20220524095836.png

点击立即购买后,进行隧道配置,在这个页面下可以配置要监听的服务端口、前置域名、验证信息等。


微信图片_20220524095901.png


更多实用功能,感兴趣的读者,可以自行尝试。今天的文章就写到这里,亲爱的读者,这款神器,你Get到了吗?

目录
相关文章
|
NoSQL 网络协议 Linux
公网远程cpolar内网穿透发布网页测试 「内网穿透」
公网远程cpolar内网穿透发布网页测试 「内网穿透」
|
安全 网络协议 Linux
【内网安全-隧道搭建】内网穿透_Frp上线、测试
【内网安全-隧道搭建】内网穿透_Frp上线、测试
695 0
【内网安全-隧道搭建】内网穿透_Frp上线、测试
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
6天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
47 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
4天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
26 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
2月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
135 11
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
92 3
|
4月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
109 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

热门文章

最新文章