只需三步,教你轻松搞定内网穿透

最近开发过程中又遇到了需要外网访问内部服务接口的需求,比如调用三方服务的各种回调通知、支付成功回调、大模型回调等都需要外部服务器来访问内部的接口,这里有个问题就是如果我们在本地或者测试环境调试的过程中我们使用的是内网环境,那外网是访问不到我们的接口的,那如何解决这个问题呢?

答案就是使用内网穿透,我们先来看看内网穿透有什么优点和他的使用场景,然后我会通过一个完整的java示例来教同学们怎么使用

1. 内网穿透的场景

内网穿透(也称为NAT穿透、反向代理或端口转发)技术允许位于私有网络(如公司内网、家庭局域网)内的服务(如Web服务器、API接口、数据库等)被外网用户访问。在测试环境中,内网穿透技术尤为关键,因为它解决了以下关键问题:

  1. 远程访问与测试:
    • 在没有内网穿透的情况下,测试人员或外部合作伙伴可能无法直接访问位于内网中的测试环境。内网穿透技术允许他们通过公共互联网访问这些内部资源,从而进行远程测试。
    • 无论是功能测试、性能测试还是安全测试,远程访问都使得测试过程更加灵活和高效。
  2. 模拟真实环境:
    • 通过内网穿透,测试人员可以模拟真实的外网访问环境,以验证服务在公开网络中的表现和安全性。
    • 这种模拟有助于发现可能因网络配置、防火墙规则或NAT转换等问题导致的潜在问题。
  3. 团队协作与沟通:
    • 当多个团队或部门需要协作时,内网穿透可以确保所有人都能访问到相同的测试环境。
    • 这有助于减少因环境不一致导致的误解和错误,提高团队协作效率。
  4. 灵活性与可配置性:
    • 内网穿透解决方案通常提供高度的灵活性和可配置性,允许用户根据需求调整访问权限、端口映射和流量路由。
    • 这使得测试人员能够根据需要快速调整测试环境,以适应不同的测试场景和需求。
  5. 简化部署与管理:
    • 在没有内网穿透的情况下,为外部用户提供访问权限可能需要复杂的网络配置和管理工作。
    • 内网穿透技术简化了这些过程,使得部署和管理变得更加简单和高效。
  6. 安全性增强:
    • 虽然内网穿透允许外部访问内部资源,但它也可以结合安全措施(如VPN、SSL/TLS加密、访问控制列表等)来增强安全性。
    • 通过限制访问权限、加密通信和监控流量,可以确保只有授权用户才能访问内部资源,并降低潜在的安全风险。
  7. 支持多种协议:
    • 内网穿透解决方案通常支持多种协议(如HTTP、HTTPS、TCP、UDP等),使得不同类型的服务都能被外部访问。
    • 这为测试人员提供了更大的灵活性,使得他们可以测试各种类型的服务和应用。

综上所述,内网穿透技术为测试环境提供了远程访问、模拟真实环境、团队协作、灵活性、简化部署和管理以及安全性增强等关键优势。这些优势使得测试过程更加高效、准确和安全,从而提高了软件质量和用户满意度。

2. 如何使用内网穿透

2.1 注册登录账号

我们使用natapp这个工具

访问natapp官方网站 https://natapp.cn/
在这里插入图片描述

注册你的账号
在这里插入图片描述

注册成功之后登录你的账号

2.2 配置隧道

购买隧道–> 选择免费隧道
在这里插入图片描述

根据自己的需求配置名称、协议、端口(端口ip后面可以随意修改)就可以了
在这里插入图片描述

查看自己的隧道
在这里插入图片描述

点击配置进行详情配置
在这里插入图片描述

2.3 下载客户端并启动隧道

点击下载,选择适合你的版本(我这里用mac演示,win请往下走)
在这里插入图片描述

下载之后解压得到natapp文件

然后对文件赋权,执行 chmod a+x natapp 命令

启动natapp ,执行 ./natapp -authtoken=你的token
在这里插入图片描述

authtoken位置
在这里插入图片描述

启动成功效果

可以看到已经在线,并且将你的ip映射到了jexm64.natappfree.cc这个域名下
在这里插入图片描述

(windows方式)

在这里插入图片描述

2.4 启动你的服务并测试

我在服务里写了一个测试接口用来验证,接口地址为: /order/getOrderNoTest 端口为: 9091
在这里插入图片描述

然后我们通过上一步得到的域名 jexm64.natappfree.cc 拼接上我们的地址进行访问,完整地址: http://jexm64.natappfree.cc/order/getOrderNoTest

成功获取到数据
在这里插入图片描述

观察隧道,记录了这次请求
在这里插入图片描述
到这里本篇文章就结束啦,感谢您看到这里~

合作交流:mdx_0422
获取2024大厂面试资料、学习工具、微服务电商项目源码,加入java学习小组的同学可以关注下方公众号~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1421483.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ABeam德硕 | 大语言模型系列(3):企业如何拥抱大语言模型

继前两期我们分享了大语言模型的概要简介及商业模式、商业价值之后,作为大语言模型系列的收尾篇,本期我们将聚焦在大语言模型的落地,结合案例简单分析拥抱大语言模型的思路,为企业提供ABeam见解。 往期回顾 ABeam Insight | 大语…

分享一个适用于 Vue 非常好用的移动端组件库【Vant 】

一、介绍 Vant 是一款轻量、可靠的移动端 Vue 组件库,由 Youzan UI 团队开发和维护。它专注于移动端 UI 组件的设计和实现,为开发者提供了一套完整的、高质量的组件集合,帮助开发者快速构建出符合移动设计规范的应用。 以下是 Vant 的一些主…

1070: 邻接矩阵存储简单路径

解法&#xff1a; #include<iostream> #include<vector> using namespace std; int arr[100][100]; int n; int sta, des; vector<int> path; vector<vector<int>> res; void dfs(vector<int> &a,int i) {a[i] 1;path.push_back(i);…

WINDOWS下zookeeper突然无法启动但是端口未占用的解决办法(用了WSL)

windows下用着用着时候突然zookeeper启动不了了。netstat查也没有找到端口占用&#xff0c;就是起不来。控制台报错 java.lang.reflect.UndeclaredThrowableException: nullat org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) ~…

APK签名

有些没签名的apk在高版本的安卓系统是无法运行的&#xff0c;就需要进行签名。 签名需要2个步骤 反编译回编译签名 使用到的工具 ApkTool &#xff0c; 免费获取地址&#xff1a; https://githubs.xyz/boot?app58 ApkTool运行需要安装java环境&#xff0c;如果你有了&…

一个API接口对接ChatGPT3.5/4.0,Claude3,文心一言,通义千问,智谱AI等多款AI模型,打造属于自己的AI应用

今天我要给大家介绍团队的最新项目——一个集成了ChatGPT-3.5/4.0、Claude3、文心一言、通义千问、智谱AI等多个AI模型的API模型聚合平台。仅需使用一个接口就可以对接所有AI模型 为什么要创建这个平台&#xff1f; 随着不同的AI模型陆续问世&#xff0c;每个模型都有其独特…

HarmonyOS应用模型Stage基本介绍

文章目录 <font colorcoral> HarmonyOS应用模型概况<font colorcoral> Stage模型基本概念<font colorcoral> Stage模型UIAbiliry的生命周期<font colorcoral> Stage模型的配置文件<font colorcoral> 写在后面的话<font colorcoral>Referen…

Hadopp入门之基础概念

Hadoop概述 Hadoop是什么 Hadoop是一个由Apache基金会所开发的分布式系统基础架构主要解决海量数据的存储和海量数据的分析计算问题广义上来说&#xff0c;Hadoop通常是指一个更广泛的概念——Hadoop生态圈 Hadoop优势 高可靠性&#xff1a;Hadoop底层维护多个数据副本&…

C++指针和动态内存分配细节,反汇编,面试题05

文章目录 20. 指针 vs 引用21. new vs malloc 20. 指针 vs 引用 指针是实体&#xff0c;占用内存空间&#xff0c;逻辑上独立&#xff1b;引用是别名&#xff0c;与变量共享内存空间&#xff0c;逻辑上不独立。指针定义时可以不初始化&#xff1b;引用定义时必须初始化。指针的…

【C -> Cpp】由C迈向Cpp (5):深入构造函数

标题&#xff1a;【C -> Cpp】由C迈向Cpp&#xff08;5&#xff09; 水墨不写bug &#xff08;图片来源于网络&#xff09; 不抵制失败&#xff0c;携手失败&#xff0c;迈向成功 正文开始&#xff1a; &#xff08;一&#xff09;深入理解构造函数 在之前的讲解中&#x…

【手势操作-复习前一天的内容-预习今天的内容 Objective-C语言】

一、昨天呢,我们学习的是这个,事件 1.事件这一块儿呢,iOS事件,分为三大类, 1)触摸事件 2)加速计事件 3)远程控制事件 2.这个里边呢,我们主要学习的是这个触摸事件,触摸事件里边,就是Touch,touchesBegan:方法里边,有一个touches参数,它是set类型的, 3.Set,…

苹果cms:开启高速缓存加快访问速度

由于苹果cms采集的影片数据过多,如果不设置缓存,可能会造成网站访问缓慢,或者CPU消耗过高。随着用户访问量的上升&#xff0c;添加缓存设置是有这个必要的。目前cms提供了四种缓存方式 1&#xff09;file&#xff1a;以文件形式&#xff0c;通俗说直接访问Mysql&#xff0c;要达…

webpack5以下的项目,前端引入node的path模块需要额外配置

webpack5以下的项目&#xff0c;前端import * as path from path时需要额外配置&#xff0c;这里以vue.config.js为例 刚开始引入时报错 其实就是在打包前端项目的时候&#xff0c;将path模块替换成 path-browserify 模块&#xff0c;所以还需要安装 path-browserfify 模块 …

锁和MVCC如何实现mysql的隔离级别

概述 MVCC解决读的隔离性&#xff0c;加锁解决写的隔离性。 读未提交 读未提交&#xff0c;更新数据大概率使用的是独享锁吧。 读已提交 在 Read Committed&#xff08;读已提交&#xff09;隔离级别下&#xff0c;每次执行读操作时都会生成一个新的 read view。这是因为在读…

探秘钱塘高中,筑梦未来之旅————杭州市钱塘高级中学

晨曦微露&#xff0c;书生琅琅&#xff0c;古韵今风交织在这方学府&#xff0c;滔滔的钱塘江畔&#xff0c;杭州市钱塘高级中学屹立于此。这所学校自1958年建校伊始&#xff0c;走过几十年的光辉岁月&#xff0c;一直致力于提供优质的教育资源。 近年来&#xff0c;学校获得多项…

【基础绘图】 10.饼图

效果图&#xff1a; 主要步骤&#xff1a; 1. 数据准备&#xff1a;自己赋值的随机数 2. 图像绘制&#xff1a;绘制饼图 详细代码&#xff1a;着急的直接拖到最后有完整代码 步骤一&#xff1a;导入库包及图片存储路径并设置中文字体为宋体&#xff0c;西文为新罗马&#…

振弦式表面应变计怎么安装

振弦式表面应变计是一种用于测量结构表面应变的高精度传感器&#xff0c;广泛应用于工程和科研领域。正确安装振弦式表面应变计对于确保测量结果的准确性至关重要。以下是安装振弦式表面应变计的步骤和注意事项&#xff1a; 1. 准备工作 在开始安装前&#xff0c;需要准备以下工…

13、【适配器模式】让不兼容的类能够一起工作

你好&#xff0c;我是程序员雪球。 今天我们来聊聊 23 种设计模式中&#xff0c;一种常见的结构型模式&#xff0c;适配器模式。聊聊它的设计思想、实现原理&#xff0c;应用场景&#xff0c;以及如何使用。 一、设计思想 在软件设计中&#xff0c;有时我们会遇到这样的问题&a…

AI+文旅|当智慧遇见风景,感受文旅新体验

今年的五一假期,公众出游热度持续升温&#xff0c;全国多地景区再现“人山人海”&#xff0c;在这样的背景下&#xff0c;促使文旅行业不断通过数字化手段&#xff0c;提升旅游体验质量、探索新的服务方式&#xff0c;AI技术的加入为旅游业带来了革命性的变化。智能导游、智能推…

10.Java对象内置结构

文章目录 Java对象内置结构1.Java对象的三个部分1.1.对象头1.2.对象体1.3.对齐字节 2.对象结构中核心字段的作用2.1.MarkWord(标记字)2.2.Class Pointer(类对象指针)2.3.Array Length(数组长度)2.4.对象体2.5.对齐字节 3.Mark Word的结构信息3.1.不同锁状态下的Mark Word字段结…