在开发智能体或使用 DeepSeek Harness (DSH) 时,有时需要模拟特定客户端或绕过目标站点(如 WAF)的检查。直接修改配置很繁琐,且可能影响全局行为。该插件提供了按域名注入请求头的机制,允许针对特定 Host 修改 HTTP 请求头,同名头会覆盖原值。
插件简介¶
该插件由 ZhiGangCai 维护,是一个请求头注入工具。它支持按 Host 规则注入 HTTP 请求头,同名头覆盖原值,且对头名大小写不敏感。默认配置预设了一条规则:对 agentrouter.org 注入 User-Agent 以绕过 WAF。插件采用 MIT 许可证。
工作原理¶
插件通过 patch 全局 fetch 实现,无需修改 DSH 源码。它主要针对 openai-completions 和 anthropic-messages 通路。当请求发出时,系统会按规则顺序匹配 Host,取第一条命中规则;命中后逐条覆盖注入规则定义的请求头集合,原样转发;未命中任何规则的请求保持原样透传,零影响。
安装与启用¶
通过命令行安装插件,安装后需重启 DSH Web 后端使插件生效。
dsh plugin --profile web add /path/to/dsh-header-injection
配置方式¶
1. 设置面板(推荐)¶
DSH 设置面板提供了可视化的配置入口,支持即时生效。
- 进入 DSH 设置 -> 插件 -> 请求头注入。
- 配置项说明:
- enabled:控制是否启用注入,默认为true。
- rules:注入规则数组。每条规则包含hosts(Host 列表)和headers(请求头集合)。 - 规则格式:
- Host:逗号分隔的 Host 后缀列表,支持子域匹配(例如example.org, foo.com会匹配a.example.org和foo.com)。
- 请求头:多行文本,每行一条头名: 值。注入时使用Headers.set语义,即覆盖同名头。 - 简写形式:规则内可用
ua字段替代多行 headers(如{hosts: "example.org", ua: "MyUA/1.0"}),等价于一条User-Agent头。两者同时存在时headers优先。
保存配置后,设置会持久化到 ~/.dsh/settings.yaml 的 dsh-header-injection: 段,且无需重启即可生效。
2. 环境变量降级¶
当 settings 服务不可用时,可使用环境变量配置。
| 环境变量 | 默认值 | 说明 |
|---|---|---|
AR_UA_ENABLED |
1 |
0 时停止注入但保留 patch |
AR_UA_HOSTS |
agentrouter.org |
逗号分隔的 Host 列表 |
AR_UA_VALUE |
RooCode/0.15.0 |
UA 值 |
AR_UA_RULES |
- | JSON 格式的多规则数组 |
AR_UA_HEADERS |
- | 多行请求头文本(单条规则形态) |
使用方法¶
1. 状态摘要¶
使用 dsh-header-injection 命令查看当前规则列表与命中/改写计数。
dsh-header-injection
2. 健康检查¶
访问 HTTP 健康路由 GET /dsh-header-injection/health,该路由会返回规则数组与命中/改写计数。
典型用例:绕过 AgentRouter 客户端 WAF¶
AgentRouter 前端部署了阿里云 WAF,对客户端进行三重校验(TLS 指纹 + SDK 请求头 + 请求结构)。DSH 默认的 User-Agent(deepseek-harness/<version>)会被拦截并返回 unauthorized_client_error。
通过注入 User-Agent: RooCode/0.15.0,WAF 放行进入令牌校验阶段。当前实测表明,仅修改 UA 即可绕过指纹检查,无需额外补充 X-Title 或 X-Stainless-* 等头。
注意事项¶
- 仅覆盖注入:插件仅覆盖注入请求头,未在规则中提及的头保持不变。
- TLS 指纹未伪装:当前版本未伪装 TLS 指纹。虽然
agentrouter.org当前未按指纹拒绝该 UA 组合,但若目标站点收紧 WAF 判定,需在规则中补充更多头。 - 源码检查:安装前请检查源码与许可证,确保符合环境要求。
生态背景¶
DSH 理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
- 插件目录:https://www.skillhub.cn/plugins/ZhiGangCai/dsh-header-injection
- GitHub 仓库:https://github.com/ZhiGangCai/dsh-header-injection