什么是代理服务器?
代理服务器接收一方发来的请求,再把它转交给另一台服务器。正向代理代表客户端工作,反向代理则位于一台或多台应用服务器之前。代理可以过滤请求、缓存响应、管理访问或分担负载。它能带来哪些好处,取决于具体配置以及您对运营方的信任程度。
正向代理与反向代理
企业可能会为员工设备配置正向代理,用来执行访问规则,或者缓存经常被请求的内容。目标服务器看到的是来自代理的连接,不过应用层的请求头仍可能携带原始客户端的信息。反向代理则为网站接收公网流量并转发给源服务器,通常还负责终止 TLS、均衡请求负载或隐藏源站地址。
代理可以工作在不同的协议层。HTTP 代理能理解 HTTP 请求,而 SOCKS 则更通用地中继网络连接。身份验证、DNS 解析方式和支持的协议都各有不同。请查阅具体服务的文档,而不要想当然地认为每种代理都会以同样的方式处理浏览器流量和非浏览器流量。
隐私方面的局限
正向代理的运营方能够看到连接细节;如果流量没有端到端加密,还能看到内容。使用 HTTPS 时,普通代理可能看到目标名称或连接元数据,而加密的内容本身仍受保护,除非客户端明确信任了某个用于拦截的证书。目标网站仍可能通过账户登录、Cookie 或浏览器特征识别出用户。
代理并不会抹掉运营方、目标网站或网络运营商保存的活动日志。免费的公共代理可能不稳定,甚至心怀恶意。不要通过不可信的服务发送密码或敏感数据。如果您的目的是保护隐私,请先想清楚要防范的是哪一方,并审慎看待代理服务商关于日志记录和司法管辖的说法。
性能与可靠性
当响应可以被缓存时,缓存能减少重复下载;反向代理则可以把请求分发给多个后端。但多出来的一跳可能增加延迟,或者成为单点故障。过期的缓存条目可能显示旧数据,而配置不当的请求头可能暴露客户端地址或破坏应用的身份验证。更改代理后,请监控错误,并按真实用户的访问路径进行测试。
对于网站,请用合适的访问规则保护源站,只信任来自可信来源的转发请求头,并且只在安全和运维确有需要时才保留真实的客户端地址。客户端伪造的转发请求头绝不能被当作身份声明来信任。
什么时候该用代理
如果是为了执行明确的组织策略,就选正向代理;如果是为了网页分发和提升可用性,就选反向代理。比较各服务支持的协议、日志记录、身份验证、使用限制以及故障时的表现。分别在使用和不使用代理的情况下测试访问,以区分问题究竟出在代理上,还是出在 DNS、路由或源服务器上。
代理、VPN 与数据泄露是不同的问题
仅作用于浏览器的代理未必会承载 DNS 查询或其他应用程序的流量。VPN 通常会建立范围更广的隧道,但路由和配置依然关键。请分别检查可见 IP、DNS 和浏览器机制;参阅 DNS 泄露以及 WebRTC 暴露 IP 地址。