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


    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
        
        • 1

        image-20231013170404073

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

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

      image-20231013170518550

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

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

    3.本地服务测试

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

    • maven 依赖

      <parent>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-parentartifactId>
          <version>3.1.4version>
          <relativePath/> 
      parent>
      
      <properties>
          <java.version>17java.version>
      properties>
      
      <dependencies>
          <dependency>
              <groupId>org.springframework.bootgroupId>
              <artifactId>spring-boot-starter-webartifactId>
          dependency>
      dependencies>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
    • application.yml

      server:
        port: 8090
      
      • 1
      • 2
    • 访问路径

      @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("欢迎来到狐狸半面添的客栈,持续的实战开发技术分享与编程指南。");
              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("欢迎关注我的CSDN,持续的实战开发技术分享与编程指南。");
              out.flush();
              out.close();
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

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

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

      image-20231013174631816

    • http://adw7qv.natappfree.cc

      image-20231013174521887

  • 相关阅读:
    dll文件反编译源代码 C#反编译 dotpeek反编译dll文件后export
    镉系量子点 CdSe/ZnS QDs,硒化镉/硫化锌量子点(油溶性)
    【云原生 | Kubernetes 系列】---Skywalking 告警
    java框架-Spring-扩展原理
    两日总结七
    Mybatis-plus修改指定字段
    4年经验来面试25K的测试岗,连基础都不会,还不如招应届生。
    思科设备STP、RSTP配置命令
    基于ubuntu tun虚拟网卡设备完成ping的发送与模拟接收
    phpcms_v9模板制作及二次开发常用代码
  • 原文地址:https://blog.csdn.net/qq_62982856/article/details/133816755