本文为蜻蜓代理原创文章,未经作者授权禁止转载。

写于 2022-02-08 21:39,最后修改时间 2022-02-10 20:37

根据协议不同划分

HTTP 代理

在计算机网络中,代理服务器(proxy server)作为一个中介来处理客户端从其他服务器获取资源的请求。

HTTP 服务器转发来自客户端的 HTTP 请求。比如:

GET https://proxy.horocn.com HTTP/1.1
Proxy-Authorization: Basic encoded-credentials
Accept: text/html

当这个请求通过代理服务器转发到目标服务器,目标服务器返回响应给代理服务器,最终由代理服务器返回给客户端。比如:

http/1.1 200 ok
Content-Type: text/html; charset UTF-8

蜻蜓代理首页内容

HTTP 代理服务器软件

  • Squid:非常出名的 Web 缓存服务器,可作为 HTTP/HTTPS 代理服务器
  • Privoxy:常用于去广告(ad-blocking)的 Web 服务器
  • tinyproxy:轻量级 HTTP/HTTPS 代理服务器

HTTPS 代理(SSL/TLS代理)

HTTPS 代理一般通过 HTTP CONNECT 方法建立代理服务器与目标服务器的 TCP 连接,从而转发任意数据。

具体流程参考下图。

4yFOn.png

HTTPS MITM 代理服务器(HTTPS 中间人代理服务器)

MITM 代理服务器通过拦截请求,起到获取记录、修改记录的功能,一般用于调试。使用过程中,需要配置整个系统中信任代理的证书授权。

在调试HTTPS连接时,有时在浏览器之外拦截它们是很有用的。为了使TLS MITM发挥作用,你需要在浏览器或整个系统中信任代理的证书授权。

相关的软件
  • Charles:Java 实现,有图形化界面
  • Fiddler:Mono 实现,有图形化界面
  • mitmproxy:Python 实现,命令行工具,提供 API
  • sslsplit:C 实现

MITM:A man in the middle

SOCKS 代理

SOCKS 是一种网络传输协议,由 David Koblas 开发及设计,使用 SOCKS 协议的代理服务器在客户端和服务器之间交换网络数据包。

SOCKS 与 HTTP CONNECT 类似,在连接阶段后可以转发任意数据。

SOCKS 4 代理

SOCKS 4 客户端支持向目标 IP 和端口发出 CONNECT 请求和 BIND 请求。

SOCKS4a 代理

SOCKS4a 扩展了 SOCKS4 协议允许客户端指定一个目标域名而不是IP地址。这个功能在客户端无法解析目标主机域名的时候十分有用。

SOCKS5 代理

SOCKS5 不再兼容 SOCKS4 协议,目前主流 SOCKS 代理协议版本为 SOCKS5。

SOCKS5 提供了更多的认证方式,如下:

  • 0x00: 无验证
  • 0x01: GSSAPI
  • 0x02: 用户名/密码验证
  • 0x03–0x7F: 由 IANA 分配的方法
  • 0x80–0xFE: 保留给私人使用的方法

SOCKS5 增加了 IPv6 的支持,支持的地址类型如下:

  • 0x01: IPv4 地址
  • 0x03: 域名地址
  • 0x04: IPv6 地址

SOCKS5 增加了对 UDP 的支持,可用于 DNS 查询。

相关的软件

  • Sun Java System Web Proxy Server
  • WinGate:Windows 系统下支持多种协议的代理服务器软件。支持 SOCKS4、SOCKS4a 和 SOCKS5 协议。

根据匿名级别划分

网上根据匿名级别有很多种划分,比如:透明代理、匿名代理、混淆代理和高匿名代理。这几种不同的代理根据 REMOTE_ADDR、HTTP_VIA 和 HTTP_X_FORWARDED_FOR 这几个变量划分的。

但对于使用者而言,只需要关系有没有真正隐藏真实的IP地址即可。所以,这里我只划分两种:非匿名代理和高匿名代理。

备注:REMOTE_ADDR 表示访问当面页面/接口的客户端 IP 地址。HTTP_VIA 和 HTTP_X_FORWARDED_FOR 为 HTTP 头部。

高匿名代理

  • REMOTE_ADDR = 代理 IP 地址
  • HTTP_VIA = 未定义
  • HTTP_X_FORWARDED_FOR = 未定义

非匿名代理

除了高匿名代理外的其他级别的匿名代理,均为非匿名代理。

根据商业产品划分

私密代理

私密代理也叫短效代理,提供提取 API,用户可以通过这个API获取代理IP列表。返回的 IP 均为1~3分钟内的短小IP。

适合对IP使用时长要求低的用户。

产品推荐:蜻蜓代理私密代理IP

隧道代理

隧道代理不提供 API,但提供统一的入口。用户只要接入隧道代理,每个请求都是随机IP。

产品推荐:蜻蜓代理隧道代理IP

静态代理

静态代理也叫独享代理,与私密代理类似,也提供提取 API。

不同点在于,静态代理返回的IP为长效IP,有效时间一般为24小时或者更长。

适合对IP使用时长有要求的用户。

转载请注明