dsh-proxy:DeepSeek Harness 運行時可切換代理插件

前言

在 DeepSeek Harness (DSH) 中,代理配置通常涉及修改配置文件並重啓進程。dsh-proxy 插件解決了這個問題,它接管全局的 fetch 調用,允許通過 Web 設置或配置文件熱重載 HTTP(S)/SOCKS5 路由,無需重啓 DSH。

插件介紹

tr1v3r/dsh-proxy 是一個 DSH 插件,用於路由所有進程內出站請求(LLM 提供商、web_search、streamable-http MCP)。
- 維護者:tr1v3r
- 類別:聯網工具
- 許可證:MIT

核心功能

  • 全局路由:攔截所有進程內出站請求,通過 HTTP(S) CONNECT 或 SOCKS5 代理轉發。
  • 運行時切換:無需重啓,即可切換直連、跟隨系統或手動代理模式。
  • 協議支持:支持 HTTP(S) 和 SOCKS5。
  • Bypass 規則:支持 noProxy 規則(undici 風格匹配器)。
  • 子進程環境變量:支持將代理環境變量導出給子進程(exportEnv: true)。
  • 系統代理檢測:支持 macOS 系統設置代理檢測(系統模式)。
  • 迴環繞過:默認跳過本地迴環地址。

安裝與啓用

插件通過 npm 安裝。在目標配置文件目錄下執行以下命令:

dsh plugin --profile <name> install --no-frozen-lockfile

配置與使用

通過 Web 設置

  1. 打開 DSH Web 界面。
  2. 進入 Settings → General → Network proxy。
  3. 從下拉菜單選擇模式:Direct、Follow system 或 Manual。
  4. 在 Manual 模式下輸入代理地址和 Bypass 列表。文本字段在失焦時保存。

通過配置文件

編輯 ~/.config/dsh/profiles/<name>/cordis.patch.yml。

- id: dsh-proxy
  config:
    mode: manual                       # direct | system | manual
    proxy: socks5://127.0.0.1:1080     # http://…, https://…, socks5://…
    noProxy:                           # optional bypass list
      - localhost
      - .internal.example
      - registry.corp:443
    bypassLoopback: true               # true: loopback stays direct
    exportEnv: true                    # set HTTP(S)_PROXY for children

運行時切換

  • Web 設置:在側邊欄底部(設置上方)使用圖標按鈕切換模式。
  • 熱重載:修改 cordis.patch.yml 後,配置會自動生效,無需重啓。

注意事項

  • 憑證安全:嵌入用戶名/密碼的代理 URL 以明文存儲在磁盤上,僅受文件權限保護。建議在本地使用無認證代理。
  • 環境變量傳播:憑證會作爲 HTTP(S)_PROXY 環境變量傳播到 DSH 進程。子進程(如 stdio MCP 服務器)可讀取這些變量。
  • 請求中斷:如果切換代理後,某個請求仍在運行約 30 秒,該請求將被中斷。
  • 系統模式限制:系統模式目前僅支持 macOS,不支持 Windows 註冊表、Linux 桌面或 PAC。
  • URL 有效性:無效的 URL 不會被保存。

總結

dsh-proxy 提供了 DSH 全局出站流量的代理控制,支持熱重載和多種模式。適合需要在開發或運行時動態切換網絡環境的場景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜