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

2023-10-15 04:45

本文主要是介绍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

这篇关于natapp内网穿透-将本地运行的程序/服务器通过公网IP供其它人访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215404

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指