← 返回资讯

网关访问本机上游却绕进代理:怎样验证NO_PROXY与环境继承

2026-10-24

网关调用本机上游却经过了工作代理,可能是服务进程继承了HTTP_PROXY。本文只使用127.0.0.1上的假代理和假目标,用两边计数确认实际路由。此次已在Python 3.12.4、HTTPX 0.28.1下执行,未访问公网,也没有使用真实代理凭证。

用两个不同响应标记替代猜测

运行器分别启动target和proxy回环服务,随机分配端口,两者只返回自己的名称并累计命中。第一轮设置HTTP_PROXY且不设置排除,目标URL虽然是回环地址,HTTPX仍访问假代理,响应标记为proxy。第二轮加入NO_PROXY为127.0.0.1,标记变成target。第三轮去掉排除但显式trust_env=False,也直接命中target。

最终假代理命中一次,假目标命中两次。这个双端计数比单看客户端200更有区分度,因为代理和目标都能返回200。测试输出只保存合成地址的路由结论与库版本,没有打印原来进程环境里的值。临时修改的变量在finally中恢复,两个服务结束后关闭。

环境继承要在服务进程里核对

交互终端里设置正确,不代表系统服务、容器或进程管理器启动的网关也继承同样环境。可先只列相关变量名称和是否设置,确认来源,再用假值复现。不要为了排查一个服务就全局删除用户工作代理,也不要将真实带密码代理URL写入日志。

HTTPX官方说明默认读取环境变量,trust_env=False可关闭这种读取。不同库对NO_PROXY的主机名、端口和网段语义可能不同。本文只实际验证字面127.0.0.1这一项,不保证localhost、IPv6或CIDR在所有库里有相同匹配。若生产使用另一个HTTP库,必须按它的版本增加独立向量,而不是沿用本次答案。

根据边界选择排除还是忽略环境

如果服务既需要访问本地上游又需要通过代理出网,合理的排除规则可以保留出网路径;若该服务所有路由都应由代码显式控制,可考虑关闭环境继承,并为必要代理单独配置。具体选择取决于部署需求,不能把trust_env=False当成通用网络修复按钮,因为它也影响HTTPX识别的其他环境设置。

本地通过只证明这一版本在三种条件下的路由选择,不证明生产网络可达、代理权限正确或真实模型响应成功。集成时保存目标主机形式、HTTP库版本、服务环境来源和两端匿名计数;若更换了域名或启动方式,再跑一遍受控实验。让路径由可观察标记证明,能避免“请求成功所以一定没走代理”的错误判断。

配套样本与复核入口

下载本篇独立合成输入和实验运行器。上述文件放在同一目录后运行 python run_lab.py C024。完整运行需要全部四十四份输入及相关配置。结果中的method区分离线计算、静态参考检查与回环实测,不能把前两者当成真实网关已通过。

代理实验需本地已安装httpx,仅启动两个回环假服务,并在结束时恢复本进程的环境变量。

资料核对日期:2026-10-24。官方依据1;官方依据2。

与本站相关基础教程的区别:旧文讨论国内网络连接优化;本文只定位服务进程继承代理环境导致本机流量改道,输出代理和目标两边的命中计数。

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。模型接入、token 计费上有问题,也可以直接问。

去留微信

不想自己搭网关、自己维护渠道?

力达云是托管的 OpenAI / Anthropic 双格式端点,一期提供 DeepSeek,注册送 ¥5 额度。

去试用

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。