本地用 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 没写进去就等于没配。这类问题最好一次改到位,反复小改反而容易把原因搅混。
