本地用 vLLM 起在 127.0.0.1:8000,NO_PROXY 设了 127.0.0.1,SDK 请求仍被转发到公司代理,返回 502,内网服务完全不可用。

一开始怀疑是「大小写写法在不同库解析结果不同」,查了一圈,方向不对。

排查方向其实有限,先把可能性排一排。代码里连的是 localhost 不是 127.0.0.1。也可能是NO_PROXY 需要写到端口粒度。

不容易想到的是,SDK 层根本没读这个变量。

先打印环境里的代理相关变量

Get-ChildItem Env: | Where-Object Name -match 'PROXY'

NO_PROXY 同时写主机名与 IP

$env:NO_PROXY='localhost,127.0.0.1,::1'

接着用 localhost 复测一次

curl -s --noproxy '*' http://localhost:8000/v1/models

末了在代码里显式关闭代理再对比延迟

python -c "import httpx;print(httpx.Client(trust_env=False))"

命令输出我都留了记录,免得改完记不清原来的值。

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

隔了一天再看,现象没变,说明不是偶发。

改完先别撤,确认这几项。内网请求不再经过代理,延迟回到毫秒级,外网请求仍按代理走。

主机名和 IP 是两条独立规则,localhost 没写进去就等于没配。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189