代理服务器介绍,正向代理(校园网,vpn,http隧道技术),反向代理(公司服务器,frp服务),NAT和代理服务器的相同/不同点

本文主要是介绍代理服务器介绍,正向代理(校园网,vpn,http隧道技术),反向代理(公司服务器,frp服务),NAT和代理服务器的相同/不同点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

代理服务器

介绍

类型 

正向代理

引入

介绍 

vpn

http隧道技术

反向代理

引入

隧道技术

介绍

frp服务

NAT和代理服务器

相同点

不同点

NAT

代理服务器


代理服务器

介绍

一种中间服务器,充当客户端(如个人计算机或移动设备)与目标服务器(如网站服务器)之间的中介

  • 它接受客户端的请求,然后将这些请求转发给目标服务器,再把目标服务器的响应返回给客户端

类型 

  • 正向代理(Forward Proxy) 这是最常见的代理服务器类型,客户端通过它访问互联网,目标服务器仅看到代理服务器的IP地址。

  • 反向代理(Reverse Proxy) 反向代理位于目标服务器端,客户端请求通过它访问目标服务器。反向代理可以用于负载均衡、缓存和安全等功能。

  • 透明代理(Transparent Proxy) 透明代理不会修改客户端请求和服务器响应,它通常用于缓存和内容过滤,用户通常不会意识到自己正在使用代理。

  • 匿名代理(Anonymous Proxy) 匿名代理会隐藏用户的真实IP地址,但可能会向目标服务器提供代理服务器的IP地址,仍然可以识别是代理。

  • 高匿名代理(Elite Proxy) 高匿名代理提供最高级别的隐私保护,不仅隐藏用户的IP地址,还不会向目标服务器透露任何有关代理的痕迹。

 

正向代理

引入

我们以校园网为例:

我们如果想要使用校园网,第一步就是登录

  • 登录实际上就是在认证信息(姓名,学号,余额等等)
  • 这在路由器上是做不到的,是学校服务器上的登录认证服务提供的
  • 如果认证成功,路由器便为我们分配ip地址

并且,因为是学校提供网络,自然是要经过学校路由器(自动转发给学校服务器),然后再转发给运营商路由器

为什么学校要这么做?

  • 如果学校不建立服务器,怎么做登录认证,账户管理呢?除此之外,我们的网费也就应该交给运营商了
  • 并且,学校也会对流经的请求做验证,屏蔽非法的请求(比如ssh)

如果有学生使用校园网观看电影,学校服务器可能会对电影做缓存

  • 这样其他同学也想看这个电影时,就可以做到内网级访问

这里的学校服务器就属于代理服务器,且属于正向代理

  • 因为是为客户端服务,且客户端知道这个中介的存在

介绍 

代表客户端向目标服务器发送请求,并将目标服务器的响应返回给客户端

  • 客户端需要知道正向代理的存在,并将请求发送到正向代理服务器

vpn

也就是我们俗称的"梯子"

  • 如果我们想要访问国外网站,在运营商那块就直接被拦截下来了
  • 但国内某些服务器(比如香港地区的)是可以访问外网的,并且我们也是可以访问这些服务器的(因为属于国内),所以我们可以借助它们来访问国外
  • 这些服务器就属于代理服务器(正向代理),替我们访问外网的
  • 所以,我们可以在http请求正文中包含实际要请求的网站,并做加密,这样就可以骗过运营商(外部暴露的http报头是访问国内服务器,有效载荷做了加密) -- http隧道技术
  • 这样代理服务器收到后,解包+解密->新的http请求,就可以转发给[客户端实际访问的服务器]了
  • 返回的响应也是同理
http隧道技术

允许将非HTTP流量通过HTTP协议进行传输,通常用于绕过网络限制或防火墙

  • http壳子+其他数据/其他协议报文

其实壳子不重要,只要有效载荷是可以被解析,然后发送到目标服务器的就行

 

 

反向代理

引入

以公司服务器为例:

  • 某公司部署了很多服务器,当客户进行请求时,可能会出现请求聚集在其中一台/几台服务器上,其他服务器处于闲置状态 -- 造成负载不均衡问题
  • 为了解决这个问题,可以设置一个更大型的服务器(部署NGINX服务),不做业务处理,只负责请求的转发(隧道技术,比如socks5),由它按照轮询/随机的方式选择某台服务器
  • 而后端服务器部署tomcat/redis
  • 请求被转发给各台主机,响应可以让负责的服务器返回 / 转给代理服务器,再转发给特定主机

这样的服务器也是代理服务器,属于反向代理

  • 可以认为它为服务器服务,客户端不知道反向代理服务器的存在
隧道技术

一种将网络数据通过安全的、虚拟的通道传输的技术

介绍

它接收来自客户端的请求并做出一定处理(分发请求/缓存响应数据,处理加密解密),并将这些请求转发到后端服务器上处理

  • 与正向代理(客户端代理)不同,反向代理对客户端是透明的,即客户端不知道请求是经过了反向代理服务器

frp服务

我们再回过头看看之前说过的frp服务 -- NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)-CSDN博客

  • 它就属于反向代理,因为它替服务器完成请求转发的工作(转发给已经建立好连接的主机),且我们是认为自己是直接与目标主机通信的
  • frp全称 -- fast reverse proxy

NAT和代理服务器

相同点

两者似乎都是委托别人帮助发送报文

不同点

NAT

  • 工作在网络层
  • NAT设备是一种网络基础设备,解决ip不足的问题
  • 集成在路由器/防火墙等硬件设备上
  • 在局域网的出口部署(家里/运营商局域网) 

路由器在工作过程中,需要修改ip和端口号  

  • 但是,路由器不是工作在网络层吗,怎么能修改端口号(传输层)呢?
  • 实际上,说是工作在网络层,但也只是主要功能在网络层,它可以修改端口号+构建子网+实现账号登录,实际的工作范围很大

代理服务器

  • 工作在应用层
  • 用来解决具体问题
  • 是一种软件程序,部署在服务器上
  • 都可以部署(学校/公司/全球)

这篇关于代理服务器介绍,正向代理(校园网,vpn,http隧道技术),反向代理(公司服务器,frp服务),NAT和代理服务器的相同/不同点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N