解决DeepSeek API在海外访问不稳定的代理设置

解决DeepSeek API在海外访问不稳定的代理设置

人工智能

海外调用DeepSeek API失败的主因是代理未覆盖API流量,需五步解决:一、验证环境变量是否被进程继承;二、统一HTTP/HTTPS_PROXY协议并URL编码;三、在Clash/Surge中添加api.deepseek.com强制代理规则;四、代码中显式配置代理参数;五、配置TLS透传及证书信任。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在海外尝试调用 DeepSeek API 时频繁遭遇连接超时、TLS握手失败或返回空响应,则很可能是代理链路未正确覆盖 API 流量、环境变量未被进程继承,或代理规则误将 api.deepseek.com 判定为直连域名。以下是解决此问题的步骤:

一、验证代理环境变量是否被目标进程加载

DeepSeek API 客户端(如 Python requests、curl、Node.js 脚本)依赖系统级 HTTP_PROXY 和 HTTPS_PROXY 环境变量进行流量路由。若变量仅在当前 Shell 中设置但未注入到子进程,API 请求仍将直连。

1、在终端中执行 echo $HTTP_PROXY(Linux/macOS)或 echo %HTTP_PROXY%(Windows CMD),确认输出为有效代理地址。

2、若输出为空,需检查变量是否已写入 shell 配置文件(如 ~/.bashrc、~/.zshrc 或系统环境变量面板),并重新打开终端或执行 source ~/.zshrc 使其生效。

3、对 Python 进程额外验证:在脚本开头插入 import os; print(os.environ.get('HTTPS_PROXY')),确保运行时实际读取到该值。

二、统一代理协议并修正 URL 编码格式

DeepSeek API 强制使用 HTTPS 协议发起请求,若 HTTPS_PROXY 未设置或其协议前缀与 HTTP_PROXY 不一致,多数客户端(尤其是基于 urllib3 的实现)将忽略代理并回退至直连。

1、同时设置两个变量,且均使用 http:// 前缀(非 https://),例如:HTTP_PROXY=http://127.0.0.1:7890HTTPS_PROXY=http://127.0.0.1:7890

2、若代理地址含认证信息(如 user:pass@host),必须对特殊字符进行 URL 编码:冒号 : 编码为 %3A,@ 符号编码为 %40,斜杠编码为 %2F

3、禁止将 SOCKS5 地址直接赋值给 HTTP_PROXY;如需使用 SOCKS5,应显式声明协议:HTTPS_PROXY=socks5://127.0.0.1:7891

三、调整代理软件规则以强制转发 api.deepseek.com

Clash、Surge、Quantumult X 等代理客户端默认启用「域名匹配直连」策略,常将 api.deepseek.com 归类为「国内域名」或「直连白名单」,导致请求未进入代理隧道。

1、打开代理软件界面,进入「规则」→「Rule Providers」或「自定义规则」页。

晓语台

晓语台,是一款AI文本创作产品。创作能力主要围绕营销文本的AI创作,晓语台覆盖了品牌与市调、商业媒体、社交媒体、搜索营销、数字广告、职场办公共六类全营销文本

下载

2、查找是否存在类似 DOMAIN-SUFFIX,deepseek.com,DIRECTDOMAIN-KEYWORD,api,DIRECT 的规则项,将其删除或注释。

3、手动添加强制代理规则:DOMAIN-SUFFIX,api.deepseek.com,PROXY(Clash 格式)或 DOMAIN,api.deepseek.com,Proxy(Surge 格式)。

四、在代码中显式配置代理参数绕过环境变量依赖

当无法控制运行环境(如 Docker 容器、CI/CD 流水线、GUI 应用)时,环境变量可能不可靠。此时应在 SDK 层级硬编码代理配置,确保每次请求均经指定出口。

1、Python requests 示例:proxies = {"http": "http://127.0.0.1:7890", "https": "http://127.0.0.1:7890"},并在 requests.get() 中传入 proxies 参数。

2、cURL 示例:curl -x http://127.0.0.1:7890 https://api.deepseek.com/v1/chat/completions

3、Node.js Axios 示例:在 axios.create() 配置中加入 proxy: { host: '127.0.0.1', port: 7890 }

五、启用 TLS 透传与证书信任链校验

部分代理(如 mitmproxy、Charles)会对 HTTPS 流量执行中间人解密,若客户端未安装对应 CA 证书或系统证书存储未更新,将触发 SSLCertVerificationError,表现为 ConnectionError 或 SSLError。

1、确认代理软件已启用 HTTPS 解密功能,并导出其根证书(通常为 .pem 或 .crt 文件)。

2、将证书导入系统级信任库:Linux 执行 sudo cp proxy-ca.crt /usr/local/share/ca-certificates/ && sudo update-ca-certificates;macOS 使用钥匙串访问导入并设为「始终信任」。

3、在 Python 中临时禁用验证仅用于调试:requests.get(url, proxies=proxies, verify=False)(生产环境严禁使用)。

本文地址:https://www.sztg.com.cn/article/656779.html

如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!

猜您喜欢