代理服务器本质就是一个中转中间人。正常上网流程是电脑直接和目标网站交互,使用代理之后,电脑先连接代理服务器,再由代理代为访问目标网站,获取内容后转发回本地。目标网站记录到的IP是代理服务器地址,看不到你的真实IP。这个中转角色,决定了代理服务器所有优缺点。
最直观的作用就是隐藏访问来源。经由代理访问网站,网站记录的访问IP是代理的,不是本机地址,但隐藏效果分等级。透明代理虽然转发请求,但请求头会携带真实IP,相当于没有隐藏。匿名代理隐藏本机IP,但会向网站标识当前使用了代理。高匿代理不会泄露任何相关信息,网站无法获取真实IP,也识别不出代理访问。三种代理实际使用效果差异很大,拿透明代理充当匿名代理使用,完全达不到隐藏目的。

缓存是代理服务器另一项实用能力。代理服务器会接收大量网络请求,能够存储静态资源,比如图片、样式表、静态网页。再次收到相同资源请求,代理直接返回本地缓存,不用重新向源站拉取内容。带宽不足的内网环境下,企业几十人访问同一个外部网站,首次加载完成后,后续人员直接读取缓存,访问速度提升明显。缓存同样存在弊端,如果源站内容更新,代理缓存没有同步刷新,用户看到的就是旧版本内容。
访问控制是企业场景最常用的功能。企业防火墙搭配代理,可以管控可访问网站,同时记录员工访问记录,学校机房也会借助代理过滤不良内容。个人使用代理,大多是为了绕过网络限制,访问本地网络无法直达的资源。同一技术,企业和个人使用方向刚好相反。
协议层面,HTTP代理和HTTPS代理的区别需要区分清楚。HTTP代理可以读取完整请求内容,网址、表单数据、Cookie都会暴露,因为HTTP属于明文传输。HTTPS代理不一样,浏览器先和代理建立隧道,再和目标网站完成TLS加密,代理只转发加密数据流,无法读取里面内容。使用HTTP代理登录网站,账号密码对代理是可见的。HTTPS代理可以保护传输内容不被代理读取,但代理依旧能获取访问域名和传输数据量。
SOCKS代理属于另一种类型,不区分HTTP、FTP、游戏流量,统一当作TCP数据流转发。SOCKS5额外支持UDP,适合低延迟需求场景。优势是通用性强,兼容各类协议;缺点是无法像HTTP代理那样做内容缓存和内容过滤。需要按域名设置规则、网页缓存,HTTP代理更合适;想要转发全部流量,SOCKS会更简便。
正向代理和反向代理是从流量方向区分。正向代理代表客户端,需要手动配置代理才能使用,网站无法识别真实访客。反向代理代表服务器端,用户以为直接访问源站,实际请求先抵达反向代理,再分发到后端服务器。反向代理多用于负载均衡、SSL卸载、缓存加速和安全防护,用户感知不到它的存在。很多大型网站前端都部署反向代理,用户访问的IP只是代理,并不是承载业务的后端服务器。
日志是代理无法避开的特性。所有经过代理的请求都可以被记录,记录信息包含访问时间、访问地址、传输流量。企业依靠日志做安全审计和故障排查,公共代理服务商有可能利用这些日志。使用来路不明的免费代理,访问记录、搜索关键词,甚至登录凭证都有可能被留存。HTTPS能够保护传输内容不被窥探,但无法阻止代理获取访问的网站域名。
性能没有固定结论。多一层中转,理论上延迟会增加;代理服务器带宽不足、负载过高,访问速度反而下降。但如果代理开启缓存、使用优化线路或是压缩传输数据,体验会优于直连。很多CDN节点本质就是反向代理,用户感受不到额外中转,只会觉得网站加载更快。
安全风险不能忽视。代理处在流量中间位置,具备修改传输数据的能力。恶意代理能够在网页植入广告、替换下载链接、劫持会话。免费代理风险更高,运营需要成本,天下没有免费的服务,用户省下服务费,可能付出数据泄露、安全受损的代价。使用代理时,HTTPS是基础底线,登录账号、支付操作尽量不要使用公共代理。代理服务器只是中间人,所有能力和风险都来源于这个中转位置。合理使用就是工具,一旦疏忽就会变成安全漏洞。