代理是一种提供客户端与服务器进行非直接链接的服务。提供代理服务的服务器称之为代理服务器(Proxy Server)。而持有资源实体的服务器称之为源服务器。
代理服务器分类
按代理协议
- HTTP 代理:应用层协议代理,支持访问未加密站点
- SOCKS 4/5 代理:会话层协议代理,SOCKS 5 支持所有底层使用 TCP 和 UDP 的网络应用代理,SOCKS 4 仅支持 TCP 代理。另外 SOCKS 5 还支持 IPv6。
- TLS / SSL 代理:应用层协议代理,支持访问加密站点
- POP3 / SMTP 代理:邮件服务代理
- FTP 代理:文件传输代理
- ...
按匿名程度
以下四种代理的区别是由于代理服务器配置的 REMOTE_ADDR
、HTTP_VIA
和 HTTP_X_FORWARDED_FOR
值不同导致。当没有使用代理时仅 REMOTE_ADDR
是有值的。
高度匿名代理(Elite proxy或High Anonymity Proxy)
高匿代理其实就是修改请求头,将
HTTP_VIA
与HTTP_X_FORWARDED_FOR
属性删除,服务器由此误认为客户端没有使用代理。REMOTE_ADDR = Proxy IP HTTP_VIA = not determined HTTP_X_FORWARDED_FOR = not determined
匿名代理(Anonymous Proxy)
REMOTE_ADDR = proxy IP HTTP_VIA = proxy IP HTTP_X_FORWARDED_FOR = proxy IP
透明代理(Transparent Proxy)
REMOTE_ADDR = Proxy IP HTTP_VIA = Proxy IP HTTP_X_FORWARDED_FOR = Your IP
混淆代理(Distorting Proxy)
REMOTE_ADDR = Proxy IP HTTP_VIA = Proxy IP HTTP_X_FORWARDED_FOR = Random IP address
安全性上:高匿 > 混淆 > 匿名 > 透明。
抓包工具
Charles
开始之前
- 安装 JDK 环境;
- 前往官网下载安装适合操作系统的 Charles;
- 如系统使用了 VPN 等软件,先暂时关闭。
快速开始
启用 HTTP 代理
在菜单栏选择
Proxy -> Mac OS X Proxy
启动 HTTP 代理,如无效,可以直接打开系统偏好设置 -> 网络 -> 进阶 -> 代理服务器
,然后设置为127.0.0.1:8888
即可。启用 SSL 代理
- 在菜单栏选择
Help -> SSL Proxying -> Install Charles Root Certificate
然后在系统的钥匙串访问中,双击这个证书,然后展开信任一栏,在 SSL 一栏选择始终信任; - 然后在
Proxy -> SSL Proxying Settings -> add
添加 Host 为*
,Port 为443
,这样就可以针对所有站点进行 SSL 代理了。
- 在菜单栏选择