代理为何只改变浏览器 IP,却不影响其他应用
浏览器或 Wi-Fi 的 HTTP 代理设置,不会自动让所有应用和协议都经过所选 IP。
浏览器里 IP 变了,说明的是那次浏览器请求。其他应用仍可能走直连,因为代理设置只是配置信息,每个客户端都得支持并实际使用它。
| 代理设置在哪儿 | 通常控制什么 |
|---|---|
| Firefox 手动设置 | Firefox 支持的请求。 |
| 系统 HTTP 代理 | 读取并支持这份配置的应用。 |
| 应用自身的 HTTP 或 SOCKS 选项 | 该应用实现所覆盖的流量。 |
| 某个 Wi-Fi 网络的代理 | 在该网络下使用这项设置的客户端。 |
游戏或语音通话可能使用 HTTP 路径之外的流量;直接打开套接字的应用可以完全忽略系统代理。即使 SOCKS5 也需要实现支持:协议定义了 UDP 关联,但 Chromium 内置的 SOCKS5 支持覆盖的是 TCP URL 请求,并不是通用 UDP 中继。
找到另一个应用在文档中说明的代理接口,并匹配它的协议。如果应用根本没有代理接口,反复修改系统 HTTP 端点也不太可能帮它完成配置。用该应用的诊断功能或你控制的目标端验证它发出的请求;curl 可以验证端点,却不能替另一个应用证明它的通信路径。
应用启动后或网络变化后,再检查一次。进程可能保留启动时读到的设置;手机切到移动数据后,Wi-Fi 专属配置也就不再适用。若要求整个设备改道,应选择为这种范围设计的机制;单个客户端的 HTTP 设置无法实现这一点。