在開發智能體或使用 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