dsh-proxy-control:在運行中控制 DeepSeek Harness 的出站代理

前言

DeepSeek Harness (DSH) 的核心設計之一是“一切皆插件”。在開發或調試過程中,切換出站代理(如從 HTTP 切換到 SOCKS,或切換代理地址)通常需要重啓應用或修改配置文件。dsh-proxy-control 插件提供了在運行時動態控制出站代理的能力,無需重啓。

核心功能

該插件主要解決以下問題:
- 三種來源三選一:支持內置(啓動環境)、系統(Windows 代理設置)、手動(自定義地址)三種模式。
- 立即生效:修改代理地址、直連名單或切換來源後,下一次請求即走新配置。
- 如實上報:界面顯示此刻實際生效的流量路徑,而非僅僅是插件的配置狀態。
- 覆蓋範圍:支持 fetch、web_fetch、子進程的出站流量。
- 流量控制:迴環地址強制直連;支持直連名單分流。
- 連通性自測:提供自測功能,按真實調用路徑驗證配置是否生效。

安裝與啓用

安裝前請確保環境滿足要求:DSH 0.2 系列與 Node.js 22+。

使用官方安裝命令:

dsh plugin --profile desktop add "/絕對路徑/dsh-proxy-control"

安裝後需要重啓一次,因爲 bundle 列表只在啓動時讀取。插件包內的 cordis.patch.yml 會自動插入 profile。若要直接修改配置,可編輯 profile 的 cordis.patch.yml:

- id: proxy-control
  name: dsh-proxy-control
  config:
    mode: env          # env 內置 / system 系統 / manual 手動
    proxy: ''          # 僅手動模式使用
    noProxy: ''        # 直連名單
    testUrl: ''        # 留空用默認自測地址

早期版本的 enabled 與 autoDetect 已刪除;配置文件中若保留這些字段,會在下次保存時被清空。

使用方法

在 設置 → 代理 頁面操作。

界面分爲三行,分別對應三種來源(手動/系統/內置),未選中的會置灰並標明“未選中”。

  • 重新讀取:點擊圖標按鈕,重新讀取內置來源或系統代理設置。
  • 重新探測:針對系統代理,重新探測 Windows 註冊表中的設置。
  • 測試:點擊圖標按鈕,向自測地址發起請求,驗證當前配置的連通性。
  • 手動模式:直接輸入代理地址和直連名單,失焦或按回車即可保存。
  • 查看結果:每一行下方會顯示“生效中的代理”以及“自測結果”。

配置項

配置項 說明
代理來源 內置 / 系統 / 手動 三選一。默認 內置,惰性加載,不改變任何行爲。
代理地址 僅手動模式使用,例如 http://127.0.0.1:7890。只接受 http 與 https 協議。
直連名單 主機名不走代理。僅手動/系統模式;內置模式以環境變量 NO_PROXY 爲準。
自測地址 “測試”功能訪問的地址,留空則使用默認地址。

三種來源

界面名稱 數據來源 說明
手動 用戶輸入 手動指定代理地址和直連名單。
系統 Windows 註冊表 僅桌面版可用。讀取 Internet Settings,不解析 PAC。
內置 $DSH_HOME/.env 或啓動變量 插件不干預路由,僅讀取啓動環境配置。

內置模式是惰性的,裝上後默認不會改變任何行爲。若“生效中的代理”顯示爲“啓動環境(.env 或已導出的變量)”,說明流量走的是 DSH 啓動器那一層。

已知限制

  • 協議限制:不支持 SOCKS,只接受 http / https。
  • 平臺限制:系統代理僅在桌面版提供,Web 端禁用此項且不解析 PAC。
  • 通配符限制:系統 bypass 列表被整份忽略,不支持通配符(如 127.*)。
  • CIDR 限制:直連名單不支持 CIDR 格式(如 10.0.0.0/8)。
  • 分類限制:不做按類別開關,LLM 對話與 web 搜索共用 URL。
  • 啓動前限制:自定義 CA 需要在啓動前設置 NODE_EXTRA_CA_CERTS。
  • 進程隔離:Electron 自身流量(自動更新、登錄頁)不受插件控制。
  • 子進程策略:子進程跟隨策略,若 .env 中也配置了代理,子進程會優先跟隨 .env 的值。

安全性

由於設置頁接口能改流量走向,插件對接口請求做了安全限制:
- 只接受本機請求(否則返回 403)。
- 要求 Host 爲迴環地址(擋 DNS 重綁定攻擊)。
- 拒絕可免預檢跨站發送的請求體形態(返回 415)。
- DSH 的 Web 服務器自身不帶認證或來源策略,第三方路由必須自己設防。

排錯

若遇到代理不生效,請查看 “生效中的代理” 那一行,這是權威讀數。

檢查子進程的環境變量(策略安裝後纔會發佈):

$env:HTTPS_PROXY; $env:NODE_USE_ENV_PROXY

日誌中通常會顯示類似信息:

proxy-control:出站請求經由 http://127.0.0.1:7890(手動指定),直連名單 api.deepseek.com
proxy-control:不干預路由(啓動環境裏沒有代理設置,按直連處理)
proxy-control:無法使用 <地址>(<原因>),出站請求保持直連

許可

MIT License

GitHub 倉庫

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

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

小夜