Skip to content

AI API 走代理配置:终端环境变量、SDK proxies 参数与 TUN ​

AI API 走代理配置有三层做法:终端里设 HTTPS_PROXY 环境变量,让同一窗口启动的 curl、脚本自动跟随;在 SDK 构造客户端时显式传入代理或自定义 HTTP 客户端,不依赖终端;客户端开 TUN 模式,所有程序流量都经过节点。三层各有适用场景,排查时只开一层。

AI API 网络要求已讲过环境变量的基本写法与分流原则,本文往下展开:三层方法怎么选、SDK 里怎么写、哪些情况环境变量不起作用。调用超时或 403 的排查见API 超时排查。

速读要点

  • 环境变量管终端,SDK 管程序,TUN 管整机
  • 大小写变量都要设,NO_PROXY 必须含本地地址
  • IDE、定时任务、容器不继承终端变量,是最常见的「设了没用」

AI API 走代理配置:三层方法怎么选 ​

方法作用范围适合局限
环境变量 HTTPS_PROXY当前终端及其子进程临时测试、脚本、CLI 工具不读环境变量的程序无效;GUI 程序不继承
SDK 的 proxies / HTTP 客户端参数这一个程序长期项目、多人协作每个项目各写一份;代理地址要和配置分离
TUN 模式整台机器开发环境、多语言混用分流规则要配好,否则国内服务也绕路

终端环境变量:写法与常见坑 ​

bash
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
  • 端口以客户端设置页显示的为准。多数客户端有「混合端口」,HTTP 和 SOCKS 共用;只有 SOCKS 端口的写成 socks5://127.0.0.1:端口,但不是所有库都支持 SOCKS,HTTP 代理兼容性最好。
  • 变量名大小写都要设。部分库只读小写 https_proxy,部分只读大写。
  • NO_PROXY 必须包含本地地址,否则本地服务、数据库连接也会被扔给代理。
  • 只在当前窗口生效。新开终端、IDE 里的终端、定时任务都不继承,要么写进 shell 配置文件,要么改用下面两种方法。
  • 用 sudo 时环境变量默认丢失,加 -E。

验证:同一窗口 curl ifconfig.me 返回节点地区的 IP,再 curl -I 目标 API 域名看状态码。

SDK proxies 参数:在代码里显式指定代理 ​

多数 AI SDK 底层用通用 HTTP 库,提供两类入口:直接传 proxies 或 proxy 参数,或者传一个自定义 HTTP 客户端,把代理配在客户端上。两点原则:

  1. 代理地址从配置或环境读,不要写死在代码里。 每个人的客户端端口不同。
  2. 代理与 Key 分开管理。 代理地址可以进项目配置;API Key 不行,见代理环境下 API Key 安全。

部分 SDK 默认走 gRPC 或 HTTP/2 传输,对 HTTP 代理的支持可能与 REST 不一致,连不上时切换传输方式或改用 TUN,以 SDK 文档为准。

TUN 模式:什么都不改也能走 ​

客户端开启 TUN 后,操作系统所有出站流量经过虚拟网卡进入客户端,由规则决定走节点还是直连。终端、SDK、IDE、容器内的进程都不需要单独配置。注意:

  • 分流规则里国内域名与本地地址必须直连。
  • 开了 TUN 又设了环境变量一般没问题,但排查时先关掉一层。
  • 不同系统开启方式不同,见TUN 与代理模式。

三层的 10 秒自检:环境变量看 echo $HTTPS_PROXY 与同窗口 curl ifconfig.me;SDK 参数在代码里打印客户端实际使用的代理地址并发一次最小请求;TUN 看客户端连接列表里有没有该程序的流量。排查时只保留一层,三层都开排不出是谁在起作用。

推荐机场 ​

API 调用对节点的额外要求是单出口与低丢包,选购标准见AI API 调用适合哪些机场。

常见问题 ​

设了 HTTPS_PROXY,IDE 里运行代码还是不走代理? ​

IDE 一般不继承终端变量。在 IDE 的运行配置里单独添加环境变量,或把变量写进 shell 配置文件后重启 IDE,或改用 TUN。

SOCKS 代理地址填进去报错? ​

该 HTTP 库可能不支持 SOCKS,或需要额外依赖。改用客户端的 HTTP 混合端口最省事。

Docker 容器里的程序怎么走代理? ​

容器内的 127.0.0.1 是容器自己。指向宿主机地址(Docker Desktop 下为 host.docker.internal)并在客户端开「允许局域网连接」,或在宿主机开 TUN。

写进 ~/.zshrc 后所有命令都变慢了? ​

国内服务也被代理了。补齐 NO_PROXY 与分流规则,或者不写进配置文件,只在需要时手动 export。

下一步 ​

相关阅读 ​

本站内容仅供参考,部分链接含推广说明,详见各优惠页。关于本站