NAT、代理服务、内网穿透

NAT、代理服务、内网穿透

NAT 技术背景

NAT 技术当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能;

• NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是就是一种将私有 IP 和全局IP 相互转化的技术方法:

• 很多学校, 家庭, 公司内部采用每个终端设置私有 IP, 而在路由器或必要的服务器上设置全局 IP;

• 全局 IP 要求唯一, 但是私有 IP 不需要; 在不同的局域网中出现相同的私有 IP是完全不影响的;

NAT IP 转换过程

• NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37;

• NAT 路由器收到外部的数据时, 又会把目标 IP 从 202.244.174.37 替换回10.0.0.10;

• 在 NAT 路由器内部, 有一张自动生成的, 用于地址转换的表;

• 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAPT

那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的 IP 都是相同的. 那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候 NAPT 来解决这个问题了. 使用 IP+port 来建立这个关联关系

这种关联关系也是由 NAT 路由器自动维护的. 例如在 TCP 的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

NAT 技术的缺陷

由于 NAT 依赖这个转换表, 所以有诸多限制:

• 无法从 NAT 外部向内部服务器建立连接;

• 装换表的生成和销毁都需要额外开销;

外部向内部服务器建立连接;

• 装换表的生成和销毁都需要额外开销;

• 通信过程中一旦 NAT 设备异常, 即使存在热备, 所有的 TCP 连接也都会断开;

相关推荐
fei_sun4 小时前
路径MTU发现
linux·运维·网络
AlfredZhao6 小时前
Linux 主机防火墙如何同时开启 80 和 443?
http·https·firewall
tachibana26 小时前
hot100 回文链表(234)
java·网络·数据结构·leetcode·链表
从零开始的代码生活_7 小时前
NAT、代理服务与内网穿透详解
linux·服务器·网络·c++·http·智能路由器
云栖梦泽在7 小时前
Claude Code / Codex 使用卡顿怎么办?AI 编程 Agent 连接失败与网络排查思路
网络·人工智能·网络协议·chatgpt·性能优化
Jeremy_WW7 小时前
QSFP-DD MSA Hardware协议解读(二)
网络·模块测试·智能硬件
深盾科技_Virbox7 小时前
加密狗授权能力选型:从授权模型到全生命周期管理
java·网络·数据库
运维管理7 小时前
H3C SecPath W2000-G[AK]系列Web应用防火墙 典型配置举例(E6711 E6712 E6713)-6W108-H3C 官方配置
服务器·网络·php
tuddy7894648 小时前
Privazer 源码级避坑指南:从编译到部署的深度解析
网络·copilot
懒鸟一枚8 小时前
Linux 系统 Service 服务配置详解
linux·服务器·网络