NAT/代理服务器/内网穿透
目录
一 NAT技术
二 内网穿透/内网打洞
三 代理服务器
一 NAT技术
跨网络传输的时候,私网不能直接访问公网,就引入了NAT能讲私网转换为公网进行访问,主要解决IPv4(2^32)地址不足的问题。
1. NAT原理
当某个内网想访问公网,就必须先找到处于同一个网段的出入口路由器,而内网又不能暴露在公网上,所以当IP地址到达路由器时,路由器会把源IP转换成路由器的WAN口IP,并和源IP进行映射,这里他们互为 key <=> val,当服务器回显时,填充目的服务器IP地址,也就是之前经过转换后的IP地址,源地址填服务器的IP地址,在路由到目的IP所在的路由器,并由该路由器进行查映射表,查到转换之前的私有IP,在进行转发。
示例:
假设路由器的IP地址是202.244.174.37,源主机IP为10.0.0.10,目的IP地址为163.221.120.9
1. 经过路由器转换进行映射:
源: 10.0.0.10 <=> 路由器:202.244.174.37
目的:163.221.120.9 <=> 路由器:163.221.120.9
2. 经过服务器响应并路由回来:
服务器填充源IP:163.221.120.9,目的IP:202.244.174.37
路由器进行查表:202.244.174.37,查到得到:10.0.0.10,并交付给最初的主机。
3. 如果有2台主机同时向同一个目标服务器,那么路由器进行替换的时候就是:
源: 10.0.0.10 <=> 路由器:202.244.174.37
源: 10.0.0.11 <=> 路由器:202.244.174.37
这时就有2对一样的key了,后面的key会把前面的key覆盖掉,导致一方的主机的请求响应给后一个主机了,针对这个问题,路由器不仅要保存IP地址还要保存端口号,并让后来的端口号++,这样后续响应回来的数据虽然IP地址重复了,但端口号不一样,也就解决了多台主机访问同一资源映射导致的问题了,所以路由器不仅要缓存IP地址也要缓存端口号。
4. 这种把源IP地址/端口进行替换并建立映射就是NAT技术。
二 内网穿透/内网打洞
1. 前置
1. 正常主机A访问服务器进行一系列的NAT转换最终得到响应。
2. 那么一开始映射表没有服务器能不能直接访问主机A,不能,私网不能出现在公网上,同样的不同子网的内网最开始也不能直接通信。
2. 内网穿透
当B访问B自己的服务器建立映射表,并且服务器将来把收到的报文在转发到B自己,此时A访问这个服务器,服务器就会把A的报文转发到B,之前已经建立了B到服务器的映射,现象就是A直接穿透到了B,也就是内网穿透。
2. 内网穿透
这种通过得到对方转换后的IP地址,并且对方已经建立了映射表,后续就可以不通过公网服务器,直接路由到对方的路由器,因为对方已经和路由器建立了映射,发送方拿映射后的IP地址就能直接访问到对方建立映射表的路由器,这种不通过公网,直接从一个路由器跳到另一个路由器的技术也就是内网打洞,类似对方的路由器打了个洞,让发送方直接进去。
三 代理服务器
1. 正向代理
多个主机访问外网首先会经过代理服务器,由该服务器部署的某些服务帮你访问并响应回去,为什么要这么做?统一管理这些主机,比如访问非法网站,陌生的IP地址就直接不做转发,请求也就失败了。如果有多台主机访问同一个静态资源,代理服务器也能缓存,收到请求直接返回提高效率。当进行转发的时候把主机的IP替换成代理服务器的IP地址,也能保护主机的身份。某个主机资源开销高,就限制这台主机的资源速率,比如控制下载速度等。
2. 反向代理
发送方主机请求打到代理服务器,由代理服务去分配给接收方主机,比如采用轮询,随机分配等策略,避免某一台主机压力爆满,而其他的一直空闲,这种技术叫做负载均衡,当然也能保护客户端的身份,缓存等。
相关文章:

NAT/代理服务器/内网穿透
目录 一 NAT技术 二 内网穿透/内网打洞 三 代理服务器 一 NAT技术 跨网络传输的时候,私网不能直接访问公网,就引入了NAT能讲私网转换为公网进行访问,主要解决IPv4(2^32)地址不足的问题。 1. NAT原理 当某个内网想访问公网,就必…...

Unity 多时间源Timer定时器实战分享:健壮性、高效性、多线程安全与稳定性能全面解析
简介 Timer 是一个 Unity 环境下高效、灵活的定时任务调度系统,支持以下功能: •支持多种时间源(游戏时间 / 非缩放时间 / 真实时间) •支持一次性延迟执行和重复执行 •提供 ID、回调、目标对象等多种查询和销毁方式 •内建…...
深入解析Spring Boot与Spring Security的集成实践
深入解析Spring Boot与Spring Security的集成实践 引言 Spring Security是Spring生态中用于处理认证和授权的强大框架。在Spring Boot项目中集成Spring Security可以轻松实现用户认证、权限控制等功能。本文将详细介绍如何从零开始集成Spring Security,并解决实际…...

【iOS】探索消息流程
探索消息流程 Runtime介绍OC三大核心动态特性动态类型动态绑定动态语言 方法的本质代码转换objc_msgSendSELIMPMethod 父类方法在子类中的实现 消息查找流程开始查找快速查找流程慢速查找流程二分查找方法列表父类缓存查找 动态方法解析动态方法决议实例方法类方法优化 消息转发…...
用户账号及权限管理:企业安全的基石与艺术
在当今数字化时代,用户账号及权限管理已成为企业IT安全体系中不可或缺的核心组件。它不仅是保护敏感数据的第一道防线,更是确保业务运营效率和合规性的关键。本文将深入探讨用户账号及权限管理的重要性、最佳实践以及实施策略,助您构建一个安全、高效且灵活的访问控制体系。…...

413 Payload Too Large 问题定位
源头 一般是服务器或者nginx 配置导致的 nginx http {client_max_body_size 50m; # 调整为所需大小(如 50MB)# 其他配置... }nginx 不配置,默认是1M 服务器 spring 不配置也是有默认值的好像也是1M 如果出现413 可以试着修改配置来避…...

2025年渗透测试面试题总结-360[实习]安全工程师(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 1. 自我介绍 2. WAF及其绕过方式 3. IPS/IDS/HIDS 4. 云安全 5. 绕过安骑士/安全狗 6. Gopher扩展…...

Ubuntu16.04升级gcc/g++版本方法
0 前言 gcc与g分别是GNU的c和c编译器,Ubuntu16.04默认的gcc和g的版本是5.4.0,在使用一些交叉编译工具链会提示找不到GLIBC_2.27,而GLIBC_2.27又需要gcc 6.2以上版本,因此本文介绍Ubuntu16.04升级gcc/g版本的方法。 1 Ubuntu16.0…...

微信小程序van-dialog确认验证失败时阻止对话框的关闭
使用官方(Vant Weapp - 轻量、可靠的小程序 UI 组件库)的before-close: wxml: <van-dialog use-slot title"名称" show"{{ show }}" show-cancel-button bind:cancel"onClose" bind:confirm"getBackInfo"…...
边缘计算模块
本文来源 :腾讯元宝 边缘计算模块是一种部署在网络边缘(靠近数据源)的集成化硬件/软件设备,用于实时处理本地数据,减少云端依赖,提升响应速度与安全性。以下是其核心要点: 1. 核心组成 …...
【极兔快递Java社招】一面复盘|数据库+线程池+AQS+中间件面面俱到
【极兔快递Java社招】一面复盘|数据库线程池AQS中间件面面俱到 📍面试公司:极兔快递 👜面试岗位:Java后端开发工程师 🕐面试时长:约 60 分钟 🔄面试轮次:第 1 轮技术面&…...

OceanBase 的系统变量、配置项和用户变量有何差异
在继续阅读本文之前,大家不妨先思考一下,数据库中“系统变量”、“用户变量”以及“配置项”这三者之间有何不同。如果感到有些模糊,那么本文将是您理清这些概念的好帮手。 很多用户在使用OceanBase数据库中的“配置项”和“系统变量”&#…...
Git本地使用小Tips
要将本地仓库 d:\test 的更新推送到另一个本地仓库 e:\test,可以使用 Git 的远程仓库功能。以下是具体步骤: 在 e:\test 中添加 d:\test 作为远程仓库 在 e:\test 目录中打开 Git Bash 或命令行,执行以下命令: git remo…...

【Python】Jupyter指定具体路径
一、右键Jupyter Notebook 右击Jupyter Notebook点击属性 二、修改以下两个地方...
ThreadLocal作一个缓存工具类
1、工具类 import java.util.HashMap; import java.util.Map;public class ThreadLocalUtil {// 使用Map存储多类型数据private static final ThreadLocal<Map<String, Object>> CONTEXT_HOLDER new ThreadLocal<>();// 存储数据public static void set(Str…...

RNope:结合 RoPE 和 NoPE 的长文本建模架构
TL;DR 2025 年 Cohere 提出的一种高效且强大的长上下文建模架构——RNope-SWA。通过系统分析注意力模式、位置编码机制与训练策略,该架构不仅在长上下文任务上取得了当前最优的表现,还在短上下文任务和训练/推理效率方面实现了良好平衡。 Paper name …...

virtualbox虚拟机中的ubuntu 20.04.6安装新的linux内核5.4.293 | 并增加一个系统调用 | 证书问题如何解决
参考文章:linux添加系统调用【简单易懂】【含32位系统】【含64位系统】_64位 32位 系统调用-CSDN博客 安装新内核 1. 在火狐下载你需要的版本的linux内核压缩包 这里我因为在windows上面下载过,配置过共享文件夹,所以直接复制粘贴通过共享文…...

unity UGUI虚线框shader
Shader "Custom/DottedLineShader" {Properties{_MainTex ("Texture", 2D) "white" {}_Color("Color",COLOR) (1,1,1,1)_LineLength("虚线长度",float) 0.08}SubShader{Tags //设置支持UGUI{ "Queue""Tran…...
vue2、vue3项目打包生成txt文件-自动记录打包日期:git版本、当前分支、提交人姓名、提交日期、提交描述等信息 和 前端项目的版本号json文件
vue2 打包生成text文件 和 前端项目的版本号json文件 项目打包生成txt文件-自动记录git版本、当前分支、提交人姓名、提交日期、提交描述等信息生成版本号json文件-自动记录当前版本号、打包时间等信息新建branch-version-webpack-plugin.js文件 // 同步子进程 const execSyn…...

chirpstack v4版本 全流程部署[ubuntu+docker]
背景介绍 由于chirpstackv3 版本使用的是锐米提供的版本,从网络上寻找的资源大多数都是一样的v3版本,是经过别人编译好发布出来的,原本的chirpsatck项目是运行的linxu环境下的,因此我的想法是在linux服务器上部署chirpsatckv4,暂时使用linux上的chirpstack v4版本,目前编译成e…...
DeepSeek 赋能数字孪生:重构虚实共生的智能未来图景
目录 一、数字孪生技术概述1.1 数字孪生的概念1.2 技术原理剖析1.3 应用领域与价值 二、DeepSeek 技术解读2.1 DeepSeek 的技术亮点2.2 与其他模型的对比优势 三、DeepSeek 赋能数字孪生3.1 高精度建模助力3.2 实时数据处理与分析3.3 智能分析与预测 四、实际案例解析4.1 垃圾焚…...
每日一道leetcode(增加版)
901. 股票价格跨度 - 力扣(LeetCode) 题目 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今…...

数字信号处理-大实验1.1
MATLAB仿真实验目录 验证实验:常见离散信号产生和实现验证实验:离散系统的时域分析应用实验:语音信号的基音周期(频率)测定 目录 一、常见离散信号产生和实现 1.1 实验目的 1.2 实验要求与内容 1.3 实验…...
Java大厂求职面试:探讨Spring Boot与微服务架构
场景:互联网大厂Java求职者面试 面试官:张老师 程序员:谢飞机 第一轮提问:音视频场景 张老师:我们公司正在开发一个实时音视频聊天应用。请你谈谈如何使用Spring Boot和WebSocket实现实时通信? 谢飞机&…...
SAP ABAP 中驼峰字段名转 JSON 的实现方案
有人问:SAP中驼峰字段名的集成接口,转Json时,abap要如何处理呢? 在 SAP 系统开发中,当通过接口与外部系统交互时,JSON 格式因其轻量、易解析的特性被广泛使用。而外部系统常采用驼峰式(Camel C…...

对抗性机器学习:AI模型安全防护新挑战
随着采用对抗性机器学习(Adversarial Machine Learning, AML)的AI系统融入关键基础设施、医疗健康和自动驾驶技术领域,一场无声的攻防战正在上演——防御方不断强化模型,而攻击者则持续挖掘漏洞。2025年,对抗性机器学习…...

[[春秋云境] Privilege仿真场景
文章目录 靶标介绍:知识点卷影拷贝(VSS) 外网任意文件读取Jenkins管理员后台rdp远程登录Gitlab apiToken 内网搭建代理 Oracle RCESeRestorePrivilege提权mimikatzspn卷影拷贝提取SAM 参考文章 靶标介绍: 在这个靶场中,您将扮演一名资深黑客…...

Redis学习打卡-Day3-分布式ID生成策略、分布式锁
分布式 ID 当单机 MySQL 已经无法支撑系统的数据量时,就需要进行分库分表(推荐 Sharding-JDBC)。在分库之后, 数据遍布在不同服务器上的数据库,数据库的自增主键已经没办法满足生成的主键全局唯一了。这个时候就需要生…...
计算机网络:怎么理解调制解调器的数字调制技术?
数字调制技术详解 数字调制技术是将数字比特流转换为适合在物理信道(如电缆、光纤、无线信道)传输的模拟信号的核心技术。通过改变载波(通常是正弦波)的幅度、频率或相位(或组合),将二进制数据映射到模拟波形上。其目标是高效利用频谱资源、提升抗干扰能力,并适应不同…...

数据库第二次作业--SQL的单表查询与多表查询
单表查询 查询专业信息表中的专业名称和专业类型 SELECT Mname, Mtype FROM MajorP;查询一个学校有多少个专业 SELECT COUNT(Mno) AS 专业数量 FROM MajorP;查询学校的男女学生各有多少位 SELECT Ssex, COUNT(*) AS 人数 FROM StudentP GROUP BY Ssex查询每个专业…...