NAT和内网穿透

news2024/11/15 9:12:21

NAT(Network Address Translation,网络地址转换)是一种广泛应用于计算机网络的技术,其主要目的是为了解决IPv4地址空间的短缺问题,并且增强网络安全。NAT技术允许一个私有网络内的多个设备共享一个或几个全局唯一的公共IP地址访问互联网。

1 地址划分

在 A、B、C 分类地址,实际上有分公有 IP 地址和私有 IP 地址 。

2 NAT

当一个私有网络中的设备需要访问互联网时,NAT设备(通常是路由器)会将其私有IP地址和端口号转换为一个公有IP地址和一个新的端口号;对于进入私有网络的数据包,NAT设备会根据其维护的转换表,将数据包的目的地址和端口转换回对应的私有IP地址和端口。

类型

  • 静态NAT:一对一的转换,一个私有IP地址永久映射到一个固定的公有IP地址。适用于需要从外部直接访问内部服务器的情况。(好像没什么意义?)

  • 动态NAT:临时分配一个公有IP地址给私有IP地址,当私有IP不再需要访问互联网时,这个公有IP可以被释放并分配给其他设备。

  • NAPT(Network Address Port Translation,网络地址端口转换):最常用的NAT形式,不仅转换IP地址,还转换端口号,使得多个私有IP地址可以共享一个公有IP地址。这是解决IPv4地址短缺问题的关键技术。

NAPT白话总结就是:通过路由器把局域网的私有地址和端口转化为公有地址和端口(修改IP首部中的源IP),并记录在转换表中;同时根据转换表把进入局域网的公有地址和端口转换回去(修改IP首部中的目的IP)。

主要问题

由于 NAT/NAPT 都依赖于自己的转换表,因此会有以下的问题:

  • 外部无法主动与 NAT 内部服务器建立连接,因为 NAPT 转换表没有转换记录。

  • 转换表的生成与转换操作都会产生性能开销。

  • 通信过程中,如果 NAT 路由器重启了,所有的 TCP 连接都将被重置。

3 内网穿透

也叫NAT穿透或NAT打洞,是一种网络通信技术,旨在解决私有网络(内网)中的设备与互联网上的其他设备直接通信的问题。由于大多数家庭和企业网络都配置在私有IP地址空间内,并通过NAT设备(如家庭路由器)连接到互联网,这些内网设备通常无法从外部网络直接访问。内网穿透技术就是为了克服这一限制的。

白话就是,内网中设备通过客户端和中继服务器(穿透服务器)建立连接,中继服务器提供一个公网地址,并将外部请求转发到内网中的设备。

基本原理

内网穿透的核心在于如何让外部网络的数据包能够穿越NAT设备,准确地找到并到达内网中的目标设备。主要有以下几种实现方式:

  1. UDP打洞:利用UDP协议的无连接特性,两台位于不同内网的设备先通过一个有公有IP的中继服务器建立初步连接。一旦双方知道了对方的公有IP地址和端口号,它们尝试直接发送UDP数据包给对方。如果NAT设备允许外部未建立连接的UDP数据包进入,并且记录了之前的外出连接信息,那么数据包就能成功穿透NAT到达对端。

  2. TCP中继/反向代理:对于TCP连接,由于其面向连接的特性,直接打洞较为困难。此时可以通过一个具有公有IP的服务器作为中继,内网设备先与中继服务器建立连接,之后外部设备通过连接该中继服务器间接与内网设备通信。这种方式牺牲了一定的通信效率,但适用性更广。

  3. STUN/TURN/ICE协议:这些是VoIP和P2P应用中常用的协议,用来帮助实现NAT穿越。STUN(Session Traversal Utilities for NAT)帮助客户端发现自己的公网地址和NAT类型;TURN(Traversal Using Relays around NAT)作为一种备份方案,提供中继服务;而ICE(Interactive Connectivity Establishment)则是结合STUN和TURN,自动选择最优的通信路径。

  4. 第三方服务和软件:如Ngrok、花生壳、FRP、ZeroTier等,提供了易于使用的内网穿透服务,用户只需简单配置即可将自己的内网服务暴露给互联网访问,无需深入了解底层技术细节。

应用场景

  • 远程访问:如远程桌面控制、文件共享,允许用户从任意位置安全地访问内网资源。

  • 个人服务器:让运行在家庭网络中的Web服务器、游戏服务器等可以被外部用户访问。

  • IoT设备管理:便于远程管理和监控物联网设备。

  • P2P通信:支持点对点的直接连接,如视频会议、即时通讯软件等。

注意事项

  • 安全性:内网穿透增加了潜在的安全风险,需要采取适当的安全措施,如使用加密通信、访问控制等。

  • 性能:通过中继或代理的通信可能会增加延迟和减少带宽效率。

  • 兼容性:不同的NAT类型(如完全圆锥型、地址限制型、端口限制型等)对内网穿透的支持程度不同,可能会影响技术的实施效果。

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

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

相关文章

JavaEE之HTTP协议(1)_HTTP基础知识,HTTP 请求、响应格式,方法,状态码

一、HTTP协议 1.1 基本概念: HTTP全称超文本传输协议,是一种无状态的、应用层的协议,它基于请求/响应模型。客户端(通常是Web浏览器)通过发送HTTP请求到服务器来获取或发送信息,服务器则返回HTTP响应作为回应。HTTP协…

MySQL实训--原神数据库

原神数据库 er图DDL/DML语句查询语句存储过程/触发器 er图 DDL/DML语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS artifacts; CREATE TABLE artifacts (id int NOT NULL AUTO_INCREMENT,artifacts_name varchar(255) CHARACTER SET utf8 COLLATE …

宿主机无法通过ip连接wsl2解决方案

文章目录 原因排查网络模式win11防火墙关闭wsl ubuntu防火墙 如果之前能连接现在连接不上可以参考该方案 原因排查 网络模式win11防火墙(win11新增了Hyper-V防火墙)wsl2 ubuntu防火墙 网络模式 wsl2的默认网络模式是NAT&#xff0c;建议修改为镜像模式。在C:\Users\<User…

深入探讨极限编程(XP):技术实践与频繁发布的艺术

目录 前言1. 极限编程的核心原则1.1 沟通1.2 简单1.3 反馈1.4 勇气1.5 尊重 2. 关键实践2.1 结对编程2.1.1 提高代码质量2.1.2 促进知识共享2.1.3 增强团队协作 2.2 测试驱动开发&#xff08;TDD&#xff09;2.2.1 提升代码可靠性2.2.2 提高代码可维护性2.2.3 鼓励良好设计 2.3…

Volatility 内存取证【信安比赛快速入门】

一、练习基本命令使用 1、获取镜像信息 ./volatility -f Challenge.raw imageinfo 一般取第一个就可以了 2、查看用户 ./volatility -f Challenge.raw --profileWin7SP1x64 printkey -K "SAM\Domains\Account\Users\Names" 3、获取主机名 ./volatility -f Challenge…

【学习】使用PyTorch训练与评估自己的ResNet网络教程

参考&#xff1a;保姆级使用PyTorch训练与评估自己的ResNet网络教程_训练自己的图像分类网络resnet101 pytorch-CSDN博客 项目地址&#xff1a;GitHub - Fafa-DL/Awesome-Backbones: Integrate deep learning models for image classification | Backbone learning/comparison…

Java医院绩效考核系统源码:考核目标、考核指标、考核方法、考核结果与奖惩措施

Java医院绩效考核系统源码&#xff1a;考核目标、考核指标、考核方法、考核结果与奖惩措施 随着我国医疗体制的改革广大人民群的看病难&#xff0c;看病贵的问题一直没有得到有效地解决医疗费用的上涨&#xff0c;远远大于大多数家庭收入的增长速度。医院的改革已经势在必行&am…

左右旋分辨

从端头看&#xff0c;切削路径顺时针是右旋&#xff0c;反时针左旋。

OpenCL在移动端GPU计算中的应用与实践

一、引言 移动端芯片性能的不断提升为在手机上进行计算密集型任务&#xff0c;如计算机图形学和深度学习模型推理&#xff0c;提供了可能。在Android设备上&#xff0c;GPU&#xff0c;尤其是高通Adreno和华为Mali&#xff0c;因其卓越的浮点运算能力&#xff0c;成为了异构计…

计算机SCI期刊,中科院3区,易录用,收稿广泛

一、期刊名称 The Journal of Supercomputing 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;3.3 中科院分区&#xff1a;3区 三、期刊征稿范围 《超级计算杂志》发表有关超级计算各个方面的技术、架构和系统、算法、语…

【PromptCC】遥感图像变化字幕的解耦范式

摘要 以往的方法忽略了任务的显著特异性&#xff1a;对于不变和变化的图像对&#xff0c;RSICC难度是不同的&#xff0c;以一种耦合的方式处理未变化和变化的图像对&#xff0c;这通常会导致变化字幕的混淆。论文链接&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp…

CircuitBreaker断路器-Resilience4j

目录 背景分布式架构面临的问题&#xff1a;服务雪崩如何解决&#xff1f; CircuitBreakerResilience4jCircuitBreaker 服务熔断服务降级三种状态转换例子参数配置案例demo作业 BulkHead隔离特性SemaphoreBulkhead使用了信号量FixedThreadPoolBulkhead使用了有界队列和固定大小…

非root用户crontab定时任务不执行

前言 有一个sh脚本&#xff0c;通过crontab -l写入后&#xff0c;发现并没有执行&#xff0c;手动执行脚本却正常&#xff0c;怀疑是权限上的问题。 排查 在/var/log/cron查看日志发现有" FAILED to authorize user with PAM (Module is unknown)"的报错 解决 …

基于阿里云 OpenAPI 插件,让 Grafana 轻松实现云上数据可视化

作者&#xff1a;徽泠 引言 Grafana 作为市场上领先的开源监控解决方案之一&#xff0c;使得数据监控和可视化变得触手可及。作为一款开源的数据可视化和分析软件&#xff0c;Grafana 支持查询、可视化、提醒和探索您的各种数据&#xff0c;无论它们存储在何处。Grafana 通过…

HTTP协议中的各种请求头、请求类型的作用以及用途

目录 一、http协议介绍二、http协议的请求头三、http协议的请求类型四、http协议中的各种请求头、请求类型的作用以及用途 一、http协议介绍 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于分布式、协作式和超媒体信息系统的应…

兰州市红古区市场监管管理局调研食家巷品牌,关注细节,推动进步

近日&#xff0c;兰州市红古区市场监管管理局临平凉西北绿源电子商务有限公司进行了深入视察&#xff0c;为企业发展带来了关怀与指导。 食家巷品牌作为平凉地区特色美食的代表之一&#xff0c;一直以来凭借其纯手工工艺和独特的风味&#xff0c;在市场上占据了一席之地。领导…

0.7 模拟电视标准 PAL 简介

0.7 模拟电视标准PAL PAL 是一种用于模拟电视的彩色编码系统&#xff0c;全名为逐行倒相&#xff08;Phase Alternating Line&#xff09;。它是三大模拟彩色电视标准之一&#xff0c;另外两个标准是 NTSC 和 SECAM。“逐行倒相”的意思是每行扫描线的彩色信号会跟上一行倒相&…

读写内部闪存FLASH读取芯片ID

读写内部闪存FLASH 右下角是OLED&#xff0c;然后左上角在PB1和PB11两个引脚&#xff0c;插上两个按键用于控制。下一个代码读取芯片ID&#xff0c;这个也是接上一个OLED&#xff0c;能显示测试数据就可以了。 STM32-STLINK Utility 本节的代码调试&#xff0c;使用辅助软件…

什么是云服务器镜像,如何选择?

云服务器镜像是一种用于业务连续性、灾难恢复和备份的技术手段&#xff0c;其本质是云端创建的服务器数据副本。 这些镜像内容可以涵盖系统、光盘、软件、网站甚至整个服务器&#xff0c;主要用于创建容错和冗余服务器计算基础架构&#xff0c;为用户提供了一个方便且可靠的解…

银河麒麟桌面操作系统V10SP1【FTP服务器】配置手册

简介: FTP是一个文件传输协议,主要是在互联网上提供文件储存和访问服务的计算机,一个FTP服务器可以对多个客户端提供服务。本文主要介绍在银河麒麟桌面操作系统V10SP1上如何搭建FTP服务器以及在客户端如何访问FTP服务器的操作方法。 正文: 一、操作环境 服务端:银河麒…