NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)

2024-09-05 17:44

本文主要是介绍NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

NAT技术

介绍

NAT转换表

引入

介绍

NAPT技术介绍 

NAPT替换过程

NAPT原理

注意点

NAT缺陷

无法直接访问其他内网主机

内网穿透

工具

其他 


NAT技术

介绍

NAT 是一种网络技术,它允许在一个公共 IP 地址和多个私有 IP 地址(入口路由器的wan口地址 和 私网内的私有ip)之间进行转换

  • 目前解决ip地址不足的最主要手段
  • 路由器的重要功能之一

私有ip(介绍,地址范围),私网和公网的关系(访问外部网站的过程,NAT技术)-CSDN博客

NAT转换表

引入

如果局域网内有多台主机请求同一个服务器,经过NAT技术,会在入口路由器处转换ip地址

  • 源ip 替换成 路由器的wan口ip地址

但是,在响应返回的过程中,当路由到入口路由器处时,就会出现多条[目的ip]相同的报文

  • 该如何确定究竟发送局域网内哪台主机呢?
  • 实际上,路由器内会形成一张转换表

介绍

NAT 转换表是路由器用来管理网络地址转换过程的一个数据表

  • 私有源ip+源端口,目的ip+目的端口 -> 公有源ip+源端口,目的ip+目的端口
  • 简单来说就是,建立了[内网使用的套接字->公网使用的套接字]的映射关系

以上过程叫做NAPT技术,NAPT是NAT的一种形式/类型

NAPT技术介绍 

NAPT(Network Address Port Translation,网络地址端口转换)是一种 NAT(网络地址转换)技术的具体实现

  • 用于允许多个内网设备通过一个公共 IP 地址与外部网络进行通信
  • 它不仅仅转换 IP 地址,还涉及到端口号的转换,以便管理和区分不同的网络连接

NAPT替换过程

  • 源ip -- 私有ip -> 入口路由器wan口ip
  • 源端口号 -- 内网某主机的端口号 -> 临时端口号(由路由器分配)

NAPT原理

如果把左侧内容当成一个大字符串,它一定是全网唯一的

  • 之前我们就说过,套接字信息可以唯一标识一条网络通道
  • 即使访问相同的服务器,所有主机的ip地址也会不一样,即使是同一个主机,端口号也会不同
  • 那么,[私有ip可重复]会对这个唯一性造成影响吗?
  • 不会,因为那是在不同局域网内的情况,同一个路由器虽然可以连接多个子网,但如果有重复ip地址,就无法识别,所以不会出现一个路由器内有重复ip
  • 而这个表是路由器内部维护的,所以不会重复

右侧,也是全网唯一

  • 虽然源ip相同,但因为连端口号也替换了,而这个端口号是路由器内部的标识,所以可以保证唯一性

因为左右均唯一,所以它们互为键值,于是可以实现:

注意点

因为每条连接都会占用一个端口号,那会不会出现超出路由器的容纳上限呢?

  • 不会
  • 路由器分为家庭路由器 和 企业路由器,虽然两种承受能力不同,但家庭路由器完全可以承载一个家庭内的所有设备,企业路由器可以承载更多
  • 即使真的超出数量,运营商也会自动重新组建子网(在大型企业网络和数据中心,通常会使用自动化工具来管理和配置子网)

并且,主机数量过多也会让数据碰撞概率增大,所以一个局域网内也不会有太多主机

  • 所以NAT查表过程成本不高

NAT缺陷

无法直接访问其他内网主机

我们无法主动访问其他私网内主机

  • NAT 主要用于将私网中的 IP 地址转换为公共 IP 地址,从而允许内部设备通过公共 IP 地址访问外部网络
  • NAT 设备不会自动创建外部到内部的映射关系,因此,外部网络设备无法主动发起连接到内部私网中的设备
  • 只能是两台主机先与某公网服务通信,然后由公网服务转发给主机
内网穿透

如果非要这么做 -- 内网穿透 -> 利用一个公网服务器作为中介,使得在内网中的设备能够与外部网络进行通信

  • 首先要建立一个公网服务器,目的主机(内网设备)与该服务器之间要先建立好tcp长连接
  • 这样我们就可以通过这个服务器,来直接与目的主机通信 (公网服务器接收到想要访问目的主机的请求后,通过之前建立的 TCP 连接,将请求转发到内网设备)
  • 这一切的前提是 -- 目的主机已经与服务器建立好连接
工具

frp -- 高效的内网穿透工具,允许通过公网服务器将内网设备的服务暴露给外部网络,实现远程访问

  • 包含两个主要组件 -- frps(服务端) ,  frpc(客户端)
  • 我们可以在云服务器上部署frps,家里的电脑部署frpc:
  • 只要能访问云服务器,你就能通过 frp 提供的映射访问家里的电脑上的服务,实现远程操作

其他 

  • 装换表的生成和销毁都需要额外开销
  • 通信过程中一旦NAT设备异常, 即使存在热备(备份系统或组件在主系统运行时已经在线并处于活动状态), 所有的TCP连接也都会断开

这篇关于NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分