natapp内网穿透-将本地运行的程序/服务器通过公网IP供其它人访问

文章目录

  • 1.几个基本概念
    • 1.1 局域网
    • 1.2 内网
    • 1.3 内网穿透
    • 1.4 Natapp
  • 2.搭建内网穿透环境
  • 3.本地服务测试

1.几个基本概念

1.1 局域网

LAN(Local Area Network,局域网)是一个可连接住宅,学校,实验室,大学校园或办公大楼等有限区域内计算机的计算机网络。

1.2 内网

内网是指内部局域网,也就是说内网一般是用于局域网内部的计算机之间的互相通信,不与外部网络连接进行通信的意思。

一些不对外开发的功能,仅允许内网访问,可提高安全性和访问速度。比如一些数据库,仅允许服务器通过内网的方式进行连接。

它可以是两台电脑组成,也可以是成百上千台电脑组成,内网的传输速度更快。延迟性比较低,支持的传输介质也比较丰富。

1.3 内网穿透

内网穿透,即 NAT(Network Address Translation,网络地址转换)穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。

image-20231013162647817

1.4 Natapp

Natapp 是一款商业化的内网穿透工具,它提供了简单易用的界面和功能,可以帮助用户将内部网络中的服务暴露给公网访问。

Natapp 提供了跨平台的客户端和服务器端,用户可以通过在客户端配置映射规则,将内部服务映射到公网上的一个临时域名上,从而实现对内部服务的远程访问。

image-20231013163757401

2.搭建内网穿透环境

在项目开发阶段我们可以把项目部署在公网能访问的云服务器上,也可以使用内网穿透工具来访问我们自己电脑上运行的测试接口。这里我们使用 natapp 作为内网穿透工具。

  • ⾸先在本站注册账号:https://natapp.cn/register;

  • 登录后,点击左边“购买隧道”,免费/付费均可;

    image-20231013164340769

  • 根据需要选择隧道协议,这⾥以 web 演示,购买隧道;

    image-20231013164642110

  • 本机建立 web 服务,使用 IDEA 启动 springboot 项目,保证服务监听的端口号是购买的免费隧道所设置的端口号;

  • 根据本机操作系统下载对应的客户端;

    image-20231002215030758

  • 下载之后,解压至任意目录,得到 natapp.exe(Linux 下无需解压,直接 wget)。

    image-20231013164957568

  • 复制 authtoken 值,这个 authtoken 便是您的隧道登录凭证。

    image-20231013165150255

  • 在 Linux/Mac 下 需要先使用 sudo chmod a+x natapp 命令给执行权限。如果是在 Windows 下,无需处理。

  • 运行 natapp;

    • windows:在 cmd 命令台窗口进入 natapp.exe 的目录运行。

      natapp -authtoken=f2c62f86f2a3b0a6
      

      image-20231013170404073

    • linux:同样给予可执行权限之后,运行。

      ./natapp -authtoken=f2c62f86f2a3b0a6
      
  • 运⾏成功,都可以得到如下界⾯:

    image-20231013170518550

那么在这里,其它人就可以通过 http://adw7qv.natappfree.cc 访问本机服务。

值得注意的是,这个分配到的域名是随机变化的,即每次运行 natapp.exe 分配到的域名是不同的。

3.本地服务测试

这里我启动一个简单的 SpringBoot 项目,具有以下几个简单配置:

  • maven 依赖

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.4</version><relativePath/> <!-- lookup parent from repository -->
    </parent><properties><java.version>17</java.version>
    </properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
    </dependencies>
    
  • application.yml

    server:port: 8090
    
  • 访问路径

    @Controller
    public class TestController {@GetMapping("/fox")public void fox(HttpServletResponse response) throws IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.print("欢迎来到<a href=\"https://www.zhulang.love\" target=\"_blank\">狐狸半面添的客栈</a>,持续的实战开发技术分享与编程指南。");out.flush();out.close();}@GetMapping("/")public void root(HttpServletResponse response) throws IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.print("欢迎关注<a href=\"https://blog.csdn.net/qq_62982856\" target=\"_blank\">我的CSDN</a>,持续的实战开发技术分享与编程指南。");out.flush();out.close();}
    }
    

启动该服务,在本地可以通过 http://localhost:8090 与 http://localhost:8090/fox 成功访问后,再在外网环境下进行测试。最简单的办法就是让别人通过你获取的随机域名进行访问访问。那我这里就是通过以下两个路径进行访问我的两个接口:

  • http://adw7qv.natappfree.cc/fox

    image-20231013174631816

  • http://adw7qv.natappfree.cc

    image-20231013174521887

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2核4G游戏服务器推荐(阿里云/腾讯云/华为云)

2核4G游戏服务器推荐&#xff0c;首选腾讯云2核4G5M带宽轻量应用服务器218元一年、阿里云2核4G4M带宽轻量应用服务器297元一年&#xff0c;华为云2核2G3M云耀L服务器95元一年&#xff0c;阿腾云来详细说下2核4G游戏服务器推荐配置大全&#xff1a; 目录 2核4G游戏服务器推荐 …

vue axios封装

Vue.js 是一款前端框架&#xff0c;而 Axios 是一个基于 Promise 的 HTTP 请求客户端&#xff0c;通常用于发送 Ajax 请求。在Vue.js开发中&#xff0c;经常需要使用 Axios 来进行 HTTP 数据请求&#xff0c;为了更好的维护和使用 Axios&#xff0c;我们可以对其进行封装。下面…

前端 js导出excel

一、导出效果 二、导出代码 download() {let data [{name: aaaa,age: 10,address: 广东,phone: 1,wechart: 1},{name: bbbb,age: 11,address: 广西,phone: 2,wechart: 2},{name: cccc,age: 12,address: 山东,phone: 3,wechart: 3}]if (!data.length) {this.$Message.warnin…

暴力递归转动态规划(九)

题目 题有点难&#xff0c;但还挺有趣 有一个咖啡机数组arr[]&#xff0c;其中arr[i]代表每一个咖啡机冲泡咖啡所需的时间&#xff0c;有整数N&#xff0c;代表着准备冲咖啡的N个人&#xff08;假设这个人拿到咖啡后喝完的时间为0&#xff0c;拿手里咖啡杯即变空&#xff09;&a…

postman和jmete接口测试的用法与区别

前言 前阶段做了一个小调查&#xff0c;发现软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中&#xff0c;有高手&#xff0c;自然也会有小白&#xff0c;但有一点我们无法否认&#xff0c;就是每一个高手都是从小白开始的&#xff0c;所以今天我们就来谈谈一大…

【Qt】字体更大的富文本

使用size属性只能生成7个等级的字号&#xff0c;超过7的都视作为7。 当需要更加夸张的字号时则需要使用style属性&#xff0c;除此之外利用该属性可以生成更加逆天丰富的样式&#xff0c;(style属性是CSS样式表。 稍微跑题一下&#xff1a;似乎有安全性的考量&#xff0c;不少…

Java延迟队列——DelayQueue

Java延迟队列——DelayQueue DelayQueue的定义 public class DelayQueue<E extends Delayed> extends AbstractQueue<E> implements BlockingQueue<E>DelayQueue是一个无界的BlockingQueue&#xff0c;是线程安全的&#xff08;无界指的是队列的元素数量不存…

如何快速区分GPT-3.5 与GPT-4?

GPT 3.5 和 GPT-4 有什么区别&#xff1f; GPT-3.5 在经过大量数据训练后&#xff0c;成功地发展到可以考虑 1750 亿个参数以响应提示。这使其具备令人印象深刻的语言技能&#xff0c;以非常人性化的方式回应各种查询。然而&#xff0c;GPT-4 在更为庞大的训练数据基础上进行了…

【Qt】对话框QDialog

文章目录 **对话框**QDialog**基本概念**对话框分类标准对话框自定义消息框模态对话框非模态对话框 案例&#xff1a;点击新建按钮弹出对话框消息对话框其它标准对话框 对话框QDialog 基本概念 对话框是 GUI 程序中不可或缺的组成部分。很多不能或者不适合放入主窗口的功能组…

【uniapp微信小程序+springBoot(binarywang)

uniapp前端代码 <template><view><page-head :title"title"></page-head><view class"uni-padding-wrap"><view style"background:#FFF; padding:50rpx 0;"><view class"uni-hello-text uni-cente…

pycharm2020无法打开,点击无反应

pycharm 2020 无法打开&#xff0c;点击无反应&#xff0c;今天我碰到这现象&#xff0c;总结大体原因 C:\Users\ygw\AppData\Roaming\JetBrains &#xff08;删除该目录即可&#xff0c;一般由于升级安装 或 安装两个不同版本 会存在老旧文件影响导致&#xff09;

SpringSecurity + jwt + vue2 实现权限管理 , 前端Cookie.set() 设置jwt token无效问题(已解决)

问题描述 今天也是日常写程序的一天 , 还是那个熟悉的IDEA , 还是那个熟悉的Chrome浏览器 , 还是那个熟悉的网站 , 当我准备登录系统进行登录的时候 , 发现会直接重定向到登录页 , 后端也没有报错 , 前端也没有报错 , 于是我得脸上又多了一张痛苦面具 , 紧接着在前端疯狂debug…

dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程

课程围绕安全&#xff0c;网络&#xff0c;存储&#xff0c;云原生4个维度去讲解核心技术点。 6个专栏组成&#xff1a;dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏 一、dpdk网络 dpdk基础知识 多队列网卡&#xff0…

JavaScript学习笔记(一)

1、JavaScript是什么&#xff1f; 是一种运行在客户端&#xff08;浏览器&#xff09;的编程语言 2、JavaScript的组成是什么&#xff1f; ECMAScript&#xff08;基础语法&#xff09;、WebAPIS&#xff08;DOM、BOM&#xff09; 3、JavaScript书写位置有哪些&#xff1f;…

采集EtherNET/IP转Profinet在西门子plc中的应用

远创智控网关YC-EIPM-PN&#xff0c;让你的设备和云平台实时连接&#xff01; 远创智控YC-EIPM-PN网关产品支持各种数据接口&#xff0c;无论是工业领域的仪表、PLC、计量设备&#xff0c;还是设备数据&#xff0c;都能实时采集并整合。它将这些设备中的运行数据、状态数据等信…

学习pytorch13 神经网络-搭建小实战Sequential的使用

神经网络-搭建小实战&Sequential的使用 官网模型结构根据模型结构和数据的输入shape&#xff0c;计算用在模型中的超参数coderunning log网络结构可视化 B站小土堆pytorch视频学习 官网 https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html#torch.nn.Se…

布朗大学发现GPT-4存在新问题,可通过非常见语言绕过限制

&#x1f989; AI新闻 &#x1f680; 布朗大学发现GPT-4存在新漏洞&#xff0c;可通过非常见语言绕过限制 摘要&#xff1a;布朗大学计算机科学研究人员发现了OpenAI的GPT-4存在新漏洞&#xff0c;利用不太常见的语言如祖鲁语和盖尔语可以绕过各种限制。研究人员测试了GPT-4对…

gitlab docker部署,备份,恢复。附踩坑记录

本次安装在CentOS7下进行 1、安装yum 检查是否已经安装yum yum --version如果未安装 sudo yum install -y yum-utils添加镜像源&#xff1a; 国外镜像源&#xff1a;yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo阿里镜像源&am…

【VIM TMUX】开发工具 Vim 在 bash 中的显示与 tmux 中的显示不同

开发工具 Vim 在 bash 中的显示与 tmux 中的显示不同-CSDN博客 此方法有效 方法如下&#xff1a; 1.在~/.bashrc中添加 alias tmuxtmux -2 ,然后使配置生效 $source ~/.bashrc . 2.在~/.tmux.conf中添加 set -g default-terminal "screen-256color" 完成之后即可…