什么是反代理

admin 2024年1月23日22:31:56评论8 views字数 1271阅读4分14秒阅读模式

代理(proxy)好理解,但加上一个正或反之后就不好理解了。

有反即有正,反代理是反向代理的简称,与之对应是正向代理。我们看下具体的定义:

正向代理(Forward Proxy)是一种网络代理服务器的部署方式,代理对象是客户端,正向代理服务器代表客户端向其他服务器请求服务。

反向代理(Reverse Proxy)是另一种网络代理服务器的部署方式,代理对象是服务器,反向代理服务器代表服务器向客户端提供服务。

看完定义还是不知所云,还是搞不清楚它们的具体区别。好像网上只要提到代理就是反向代理,没人提过正向代理。

在 ChatGPT 中问了正向代理和反向代理的区别,大概意思是:正向代理主要用于隐藏客户端的真实身份。客户端通过正向代理访问其他服务器时,目标服务器只能看到代理服务器的 IP,而看不到真实客户端的 IP。

相反,反向代理主要用于保护服务器的真实身份,反代理服务器可以代理多台服务器,面向客户端只是一个IP,代理服务器后面则是多台服务器。

如果从一对多,多对一的角度理解正向代理和反向代理,正向代理是将多个客户端变成了一个;反向代理则将多个服务器虚拟成了一个。

从保护隐私角度,正向代理保护了客户端的隐私,反向代理保护了服务器的隐私。反向代理的一个应用就是负载均衡,使用多台服务器提供相同的业务。客户端并不知道当前正与哪台服务器通讯,代理服务器在客户端和服务器间充当中间人的角色。

如果代理的是端口,那么实现技术可以是端口转发或端口映射。正向代理,服务器看不到真实访问者IP。反向代理,服务器应该是能看到真实客户端IP的,不然定义就模糊了。

如果代理的整个IP,而非单个端口,其实就是 NAT 和 DNS 转发技术。端口可以转发,但应该没有技术实现 IP 的转发。

比如我们访问 192.168.1.1,要求 IP 转发实际访问的是 192.168.1.2,这在交换机原理上是无法实现的。毕竟网络通讯的基础是协议栈,二层通讯是数据帧,即工作在 MAC 层。通讯靠的的是 MAC 地址识别及 VLAN 广播。三层通讯靠的的 IP 与路由,各种网关要求工作在三层。四层通讯就是 TCP 、UDP 端口,代理一般都工作在四层通讯上。

DNS 也没有实现 IP 的转发,它只是把多个 IP 绑在相同的域名上,访问域名时由 DNS 服务器解析具体的服务器 IP。所以只能在端口层面实现转发,比如你访问的是 192.168.10.1:1521,通过端口转发实现访问 192.168.10.250:1521 。我们无法实现访问 192.168.10.1,但实际访问 192.168.10.250。IP 的转发在网络协议栈上是没有理论支持的,因为 IP 是为了定位,找到具体的服务器。

IP 转发颠覆了网络协议栈中 IP 定位的逻辑。相反 IP:端口 是由上层应用软件通过 socket 来提供的,不需要路由器和交换机硬件解包。软件层面实现端口转发是可行的,即访问 A 端口,实际上访问的是 B 端口。IP 间的通讯则只能通过交换机和路由器来实现,软件管不到 IP 。

全文完。

如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

原文始发于微信公众号(生有可恋):什么是反代理

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月23日22:31:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   什么是反代理https://cn-sec.com/archives/2422965.html

发表评论

匿名网友 填写信息