Linux网络——NAT/代理服务器

一.NAT技术

1.NAT IP转换

之前我们讨论了, IPv4 协议中, IP 地址数量不充足的问题,NAT 技术就是当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能。

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

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

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

  • 在 NAT 路由器内部, 有一张自动生成的, 用于地址转换的表 ;
  • NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;
  • NAT 路由器收到外部的数据时, 又会根据表把目标 IP 从 202.244.174.37 替换回 10.0.0.10;

2.NAPT

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

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

多个主机会在路由器转换表中被记录不同的端口号,从而进行区分。


3.内网穿透

想要实现两台处于不同私网之间的主机进行数据交流,除了通过路由器转换传递通过公网之外,还可以使用内网穿透 技术,使两台主机直接在内网中进行通信。

想要实现内网穿透技术,需要一台云服务器,通过frp工具 ,部署配置云服务器(frps服务器端)及其中一台主机(frpc客户端) ,通过TCP 将二者连接,随后把该主机上的一个端口,比如说ssh22号端口,映射到服务器端的随意端口上,比如8888,随后通过另一台主机,访问云服务器中的8888端口,就可以直接访问到对应的22号端口了。


4.内网打洞

除了上述内网穿透之外,还有一种方法称为内网打洞,具体方式为:

两台不同私网的主机最终都要通过末端出入口路由器所转换的IP+端口号 进入到公网中进行数据交流,此时如果能通过云服务器获取到对应的这个IP + 端口号,返回给客户端,就可以通过TCP或UDP跳过云服务器直接向对方主机发送数据。

通过内网打洞技术,可以降低网络延迟。


二.代理服务器

1.正向代理

正向代理(Forward Proxy)是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

工作原理:

  • 客户端将请求发送给正向代理服务器。
  • 正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。
  • 正向代理服务器将处理后的请求转发给目标服务器。
  • 目标服务器处理请求,并将响应返回给正向代理服务器。
  • 正向代理服务器将响应返回给客户端。

**功能特点:**缓存资源、内容过滤、访问控制、隐藏客户端身份、负载均衡。


2.反向代理

反向代理服务器是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。

**功能特点:**负载均衡、安全保护、缓存加速、内容过滤和重写、动静分离。


相关推荐
蓝胖的四次元口袋24 分钟前
服务器网络与系统基础-面试题
服务器·网络
Cx330❀1 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
程序员JerrySUN1 小时前
Jetson 刷机深度解析:flash.sh vs l4t_initrd_flash.sh(含安全与磁盘加密对比)
linux·网络·arm开发·安全·系统安全
视觉AI2 小时前
VS Code Remote-SSH 连接Jetson踩坑完整解决记录(网段不通+主机密钥变更双重故障)
运维·网络·人工智能·windows·ssh·边缘计算
六点_dn2 小时前
Linux学习笔记-printf命令
linux·运维·算法
明志数科2 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
蜡台2 小时前
Linux Python 安装使用
linux·运维·服务器
酉鬼女又兒2 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
欧神附体1232 小时前
在虚拟机中添加网卡,修改网卡名并关闭SElinux
linux·服务器·网络
德迅云安全-上官3 小时前
源站隐身 + 流量清洗,高防 IP 品牌实力精选
网络·网络协议·tcp/ip