HTTP(s) 反向代理、TCP 代理、Socks5 代理之间的区别?



以下是我对这些的理解,我发现那里几乎没有差距;特别是何时何地使用

HTTP(s) 代理:

  • 可用作 TLS 终止代理
  • 可用于修改 HTTP 标头
  • 可用作 DMZ 前面的负载均衡器或公共 IP 提供商,以屏蔽后端服务器

TCP 代理

  • 可用作TCP连接的反向代理,不仅可以支持HTTP,还可以支持其他应用层协议,例如FTP

我的问题

  • 如果我只接受HTTP网络流量,我们应该使用TCP代理而不是HTTP代理的用例是什么
  • 这种理解有联系吗?TCP 客户端可以连接到 TCP 代理上的单个套接字,TCP 代理可以打开与后端服务器的多个连接,类似于负载均衡器

袜子5 代理

  • 来自维基百科

套接字安全 (SOCKS) 是一种通过代理服务器在客户端和服务器之间交换网络数据包的互联网协议。SOCKS5 还提供身份验证,因此只有授权用户才能访问服务器。实际上,SOCKS 服务器将 TCP 连接代理到任意 IP 地址,并提供转发 UDP 数据包的方法。

SOCKS 在 OSI 模型的第 5 层(会话层,表示层和传输层之间的中间层)执行。SOCKS 服务器接受 TCP 端口 1080 上的传入客户端连接

我的问题

  • 在 Web 应用程序中使用什么 SOCKS 代理
  • TCP 和 SOCKS5 代理之间的区别
  • 在TCP/IP模型中,它是一个传输层协议
  • 代理 UDP 连接的用例有哪些

如果我只接受HTTP网络流量,我们应该使用TCP代理而不是HTTP代理的用例是什么

TCP代理终止传入的 TCP 套接字,打开出站套接字并在两者之间移动数据。它不会/不能更改两者之间的数据,因为它不理解任何数据。大多数情况下,TCP 代理是静态配置的,只能创建与单个主机:端口组合的连接。

HTTP代理可以理解 HTTP。它查看传入的 HTTP 请求,并使用出站的、可能已更改的 HTTP 请求来完成请求。代理可以读取 HTTP 请求的主机地址,并以这种方式连接到多个主机。它知道 HTTP 应用程序级别,而 TCP 代理不是。一些 HTTP 代理甚至可以仅使用 HTTP 满足客户端的 FTP 或 HTTPS 请求。

"正向"代理是从私有IP空间连接到公共IP空间的代理(这是代理的最初想法),而"反向"代理是从公共IP连接到私有IP(例如,从单个公共IP映射到多个Web服务器)。从技术上讲,这是相同的,但从安全 POV 来看,存在巨大差异(在"向前"中,您信任客户端,在"反向"中,您信任服务器)。

这种理解有联系吗?TCP 客户端可以连接到 TCP 代理上的单个套接字,TCP 代理可以打开与后端服务器的多个连接,类似于负载均衡器

是的。

TCP 和 SOCKS5 代理之间的区别

SOCKS5 是一种通用代理协议,可以执行比 TCP 代理更多的操作,包括一对多连接、侦听端口和 UDP。

在TCP/IP模型中,它是一个传输层协议

对我来说,SOCKS5 是一个用于仲裁传输协议连接的应用层协议。有些人认为SOCKS5是介于传输层和应用层之间的会话层协议 - 这有一定的道理,但会话层在TCP/IP中定义不明确。

代理 UDP 连接的用例有哪些

例如,SOCKS5可用于私有对公共互联网访问或(不安全的)公共到私有LAN访问。

最新更新