教程DeepSeek Harness

DeepSeek Harness 在国内网络下怎么用:代理要设环境变量,哪些请求不走代理

按 DeepSeek Harness 官方文档整理:dsh 不读操作系统的代理设置,只认 HTTP_PROXY、HTTPS_PROXY 这些环境变量,所以常见的情况是浏览器能上、它连不上。讲清变量设在哪里、不支持 SOCKS、哪些地址要直连、哪些请求本来就不走代理,以及怎么验证。

发布 · 约 6 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(9 节)
  1. 先分清:你需要代理吗
  2. 为什么浏览器走代理,它却不走
  3. 变量设在哪里
  4. 哪些地址让它直连
  5. 几条限制
  6. 哪些请求本来就不走代理
  7. 验证有没有生效
  8. 常见问题
  9. 相关文章

在需要代理才能访问部分网站的网络里用 DeepSeek Harness,最常见的情况是:浏览器一切正常,它的网页搜索、抓取页面或者模型请求却连不上。

原因在官方文档里写得很清楚:dsh 不读操作系统的代理设置,只认环境变量。 设上这两个就行:

export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890

地址和端口换成你的代理软件实际监听的 HTTP 端口。dsh 在启动时读取这些变量,所以设完要重新启动它。

下面讲清变量放在哪里、有哪些限制、哪些请求本来就不走代理。

先分清:你需要代理吗

dsh 发出的请求有好几类,不是每一类都要代理:

请求 一般的情况
调用 DeepSeek 官方接口 国内可以直接访问
调用国内能直连的中转站 不需要代理
网页搜索、抓取国外的页面 看目标网站
安装插件、从 GitHub 拉代码 经常需要

这张表是我们按常见情况整理的,不是官方的说法,以你自己的网络为准。

如果你只用 DeepSeek 官方接口或者一家国内能直连的中转站,平时不抓国外页面,可以不设代理。接中转站的办法见DeepSeek Harness 接入中转站。

为什么浏览器走代理,它却不走

官方文档把这一点称为“最常见的意外”,并且说明这不是 dsh 特有的问题:根本不存在一个所有软件都遵循的“系统代理”。 实际上有三套互不相干的机制:

机制 谁会遵循
操作系统的代理设置 Safari、绝大多数 macOS 原生应用、Chrome 和 Edge
HTTP_PROXY、HTTPS_PROXY 环境变量 curl、git、npm、pip,以及 dsh
TUN 模式(虚拟网卡) 所有程序,对应用是透明的

代理软件里的“系统代理”开关只写第一套。浏览器读得到,命令行工具永远看不到。所以设环境变量是单独的一步;打开 TUN 模式的话两边都能用,也就不需要变量了。

变量设在哪里

官方给了两个地方:

一、写进 shell 的配置文件。 比如 ~/.zshrc,这样每次运行 dsh 都带着。

二、写进 ~/.dsh/.env。 这是 dsh 自己的环境文件,和 API key 放在一起。两处都有时,导出的环境变量优先。

有一个地方不能设:项目目录里的 .env。官方的解释是,这个文件会跟着 git clone 一起到你电脑上,dsh 宁可拒绝启动,也不让一个仓库来决定你的流量往哪走。

桌面应用

从图形界面启动的程序,一般拿不到你在 shell 配置文件里导出的变量。官方的桌面端说明里写了它的处理:macOS 和 Linux 上,桌面应用在启动后台服务之前,会先运行一次你账户的登录 shell,把 ~/.zprofile、~/.zshrc 这些文件里的变量读进来。

所以在 macOS 上,把那两行写进 ~/.zshrc 之后完全退出再打开桌面应用,它就能读到。注意关掉窗口只是隐藏,不算退出。

Windows 上官方没有写这一段。用系统的“环境变量”设置成用户变量,或者写进 ~/.dsh/.env,后一种办法是官方文档里明确支持的。

代理需要用户名和密码

把它们写进地址里:

export HTTPS_PROXY=http://用户名:密码@proxy.example:8080

官方说明,dsh 自己不会把这个地址显示出来。但要注意下文“它替你运行的命令也拿得到”那一条。

哪些地址让它直连

用 NO_PROXY 列出不走代理的主机,逗号分隔:

export NO_PROXY=internal.example.com,.corp.example.com

官方文档里的规则:

  • 写的是主机名,连同它下面所有子域名一起匹配。写 example.com,api.example.com 也直连。
  • 可以带端口;写 * 表示全部直连。
  • 写网段不生效。 像 10.0.0.0/8、192.168.0.0/16 这种写法,从系统的绕过列表里抄过来不会有任何效果,要改成主机名或域名后缀。
  • 不用写 localhost 和 127.0.0.1,dsh 始终绕过本机地址。

用国内中转站的,把它的域名加进来。 设了代理之后,发给中转站的模型请求默认也会走代理,绕一圈又慢又不稳。比如中转站的接口在 api.koozhan.com,就写:

export NO_PROXY=koozhan.com

这一条是我们按上面的匹配规则给的建议,官方文档里没有专门讲中转站。

几条限制

不支持 SOCKS 代理。 写成 socks5:// 的地址会在启动时被报告并跳过,对应的请求改为直连。官方的建议是把变量指向代理软件的 HTTP 端口,多数软件两种端口都有,而且常常是相邻的端口号。

这一条最容易踩。很多人从别处抄来的是 socks5://127.0.0.1:7891 这样的地址,设上之后 dsh 实际上没有走代理。

只设 ALL_PROXY 也可以。 dsh 会用它给两种协议兜底。不过官方认为明确写 HTTPS_PROXY 更清楚。

公司代理拦截了 HTTPS 时要给它证书。 代理能连上、请求却报证书错误,在启动前把公司的 CA 证书告诉 Node:

export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

Node 只在进程启动时读这个变量,要在运行 dsh 之前设好。

它替你运行的命令也拿得到这些变量。 官方文档说明,bash 工具里的命令、git、gh,以及作为子进程启动的 MCP 服务器,都会继承代理变量。这带来两点:

  • 子进程本身是 Node 程序时,要 Node 22.21 或更高版本才会走代理,旧版本会直连。
  • 代理地址里的密码也会被这些命令读到,包括模型自己写的命令。打印环境变量的命令会把密码留在输出里。在意这一点的话,给代理开一个不需要密码的入口。

哪些请求本来就不走代理

官方列了四类,设了代理它们也保持直连:

请求 说明
本机上的一切 localhost、127.0.0.0/8 整段等始终直连
模型写的代码发出的请求 工作流和 Node 运行时进程拿不到代理配置,这是有意的,免得模型的脚本读到可能带密码的代理地址
使用情况遥测 用的是 Node 自带的 HTTP 客户端,直连。连不上只是失败,不影响任何功能
抓取写成内网 IP 的地址 形如 http://10.0.0.5/ 的地址会被直接拒绝,不会交给代理

第二条的影响是:让它“写个脚本去请求某个国外接口”,脚本里的请求不会自动走代理,要在脚本里自己配。

遥测可以完全关掉:

export DSH_TELEMETRY_MODE=DISABLED

验证有没有生效

官方给的办法是让它抓一个页面,同时看代理软件的连接日志里有没有这条请求:

dsh --profile headless "fetch https://example.com and tell me the page title"

日志里没有的话,确认变量确实进了 dsh 的环境:

env | grep -i proxy

常见问题

现象 检查什么
浏览器能上,dsh 连不上 没有设环境变量。代理软件的“系统代理”开关对它不起作用
设了变量还是不走代理 地址是不是 socks5:// 开头;设完有没有重启 dsh
桌面应用读不到变量 有没有完全退出再打开;Windows 上改用 ~/.dsh/.env
启动时拒绝运行,提到代理变量 是不是把变量写进了项目目录的 .env
NO_PROXY 里写了网段不管用 网段写法不生效,改成主机名或域名后缀
请求报证书错误 公司代理拦截了 HTTPS,设 NODE_EXTRA_CA_CERTS
用了中转站反而变慢 中转站的域名没有加进 NO_PROXY,请求绕了代理
模型写的脚本连不上外网 模型写的代码不继承代理,要在脚本里自己配

相关文章

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • DeepSeek Harness(dsh)接入中转站:添加自定义模型 API,协议和地址怎么填教程 · DeepSeek Harness · 约 9 分钟

    按 DeepSeek Harness 官方文档整理:在“设置 → 模型”里添加模型提供商,切换到“自定义模型 API”,填 Provider ID、中转站地址、协议和 key,再加上模型。讲清三种协议怎么选、密钥存在哪里、中转站拒绝请求时改哪两个兼容开关,以及常见报错怎么查。

  • 从 Claude Code、Codex 过来:DeepSeek Harness 认哪些现成的配置教程 · DeepSeek Harness · 约 10 分钟

    按 DeepSeek Harness 官方文档整理:项目里的 AGENTS.md 和 CLAUDE.md 默认就读;技能要放在 .agents/skills;Claude Code、Codex 的钩子有实验性桥接,只支持部分事件;模组兼容层只是演示;还能把 Claude Code、Codex 当子智能体调用。

  • DeepSeek Harness 的自动化:定时提醒怎么建,GitHub 有新 PR 自动开评审教程 · DeepSeek Harness · 约 7 分钟

    按 DeepSeek Harness 官方文档整理两种自动化:在对话里让它建定时提醒,到点自己把任务发回原来的会话;配一个 GitHub Webhook,PR 转为可评审时自动开一个只读的评审会话。讲清怎么开启、支持哪些时间规则、关掉程序会怎样,以及发送记录不等于执行结果。

  • DeepSeek Harness 的命令行用法:一条命令跑完一个任务,接进脚本和 Python 程序教程 · DeepSeek Harness · 约 6 分钟

    按 DeepSeek Harness 官方文档整理:除了桌面和网页界面,dsh 还能在命令行里一次跑完一个任务就退出,适合放进脚本和 CI;也能用 Python SDK 从自己的程序里调用。讲清 headless 模式的输入输出、退出码、JSON 事件流、怎么接着上一段对话,以及 SDK 的最小例子。