一句话定义:正向代理(Forward Proxy)站在客户端这一侧,替客户端「出门」去访问服务器;反向代理(Reverse Proxy)站在服务器这一侧,替服务器「接客」。两者都是中间人,区别只在于——它代表谁、站在谁前面。
先打个比方
正向代理像你雇的跑腿小哥。你(客户端)把要买的东西告诉他,他出门替你买回来。店家(服务器)只见到一个陌生跑腿的,根本不知道背后是你。要不要用跑腿、用哪个跑腿,是你自己决定的。
反向代理像公司前台。你拨打公司总机,前台接了电话,再转给具体某位同事。你以为自己在跟「公司」通话,其实先经过前台;同事换人了、加人了,你也不用改号码。
方向搞反,后面全错:把正向代理的用法套到反向代理上,你会以为「客户端得配一下」,可实际上客户端完全无感;反过来,你会以为反向代理能帮你换出口 IP,其实它只隐藏了服务器。
一表看清区别
| 维度 | 正向代理 | 反向代理 |
|---|---|---|
| 站在谁前面 | 客户端 | 服务器 |
| 代表谁发请求 | 客户端 | 服务器 |
| 客户端是否要配置 | 要,显式填写代理地址 | 不用,完全无感知 |
| 隐藏了谁 | 隐藏客户端(服务器只见代理) | 隐藏服务器(客户端只见代理) |
| 典型用途 | 统一出口与审计、访问控制、缓存、更换来源 IP | 负载均衡、TLS 终止、缓存、防护拦截、灰度切流 |
| 出问题找谁 | 网络/IT | 后端/运维 |
几个容易踩的细节
真实 IP 的传递。 请求经过反向代理后,后端只能看到代理的 IP,所以要靠 X-Forwarded-For 这类请求头把原始客户端 IP 带过去,日志、风控、限流才准。
两者会叠加。 一次请求完全可能先从公司正向代理出门,再落到对方 CDN 的反向代理上,最后才到源站。排查问题时按链路逐段看,别只盯一头。
「代理」在 AI 语境里另有含义。 智能体(Agent)也常被翻译成「代理」,那是软件行为层面的概念,跟这里说的网络中间人不是一回事。
对从业者意味着什么
调模型 API 时连不上、报证书错误或 407,先想想是不是公司统一出口的正向代理在拦——这类问题找网络组,改代码没用。
自己部署推理服务时,前面架一个反向代理(如 Nginx 或各类网关)几乎是标配:做 TLS 终止、负载均衡、限流、灰度切流,顺便把后端拓扑藏起来。所谓 API 网关,本质就是反向代理再加上鉴权、计费、观测这些能力。
从安全视角看,两个方向是两道不同的防线:正向代理管「内网出去」,要审计;反向代理管「外面进来」,要防护。混着配,等于门只装了半扇。
一句话记住:客户端要配置的,是正向;客户端无感的,是反向。
