前言¶
DeepSeek Harness 桌面版(Windows)每次啓動,本地服務端口是隨機的。會話 cookie 按 dsh-auth- 加 authority(127.0.0.1:端口)的哈希命名,但 Chromium 只按域名存 cookie,不認端口。每重啓一次,127.0.0.1 下就多一條新 cookie,舊條目在約 30 天內不會被清。攢到七十條左右,請求頭會超過 Node 默認的 16384 字節上限,請求在進業務代碼前被拒,HTTP 431;界面上常見「Web 認證失敗」,提示重裝或禁用第三方插件——這與是否安裝其它插件無關。社區插件 dsh-cookie-guard(維護者 kongbaiwin,分類 admin-security)針對這類堆積做定期清理,下面介紹其定位、機制與用法。
這是什麼¶
dsh-cookie-guard 是 DeepSeek Harness 桌面版(Windows)專用插件:在 DSH 未獨佔 Cookies 庫時,按策略刪除過期的 dsh-auth-* cookie(或可選整庫替換),避免請求頭膨脹觸發 431。插件本身不在 DSH 進程裏直接刪庫——Chromium 運行時庫被鎖,只讀都打不開——而是生成 guard.cmd、註冊系統計劃任務,並在用戶登錄後通過啓動文件夾中的隱藏 VBS 延遲觸發外部的 cleaner.mjs 執行清理。
問題與機制¶
爲何會 431¶
- Cookie 名:
dsh-auth-+ 對127.0.0.1:端口算出的哈希。 - 存儲維度:域名
127.0.0.1,端口變化不會覆蓋舊 cookie。 - 結果:反覆重啓後同域下多條
dsh-auth-*同時隨請求發出,總 header 體積超限。
插件如何調度¶
插件(跑在 DSH 裏)
├─ 寫一個 guard.cmd
├─ 建系統計劃任務(每天固定時間)
└─ 往「啓動」文件夾放一個隱藏 VBS(登錄後 60 秒)
↓ 真正動手的是它
cleaner.mjs
├─ 先探測庫鎖:鎖着就跳過,絕不硬來
├─ 按 dsh-auth- 前綴精確刪,其它 cookie 一條不碰
└─ 把結果寫進 guard.log
平臺賬戶登錄依賴本地 grant(x-dsh-auth-token 頭),默認清理範圍不包含這類憑據所依賴的其它站點 cookie;默認模式只刪 dsh-auth- 前綴。
核心功能¶
裝好後在 設置 → Cookie 清理 中配置:
| 項 | 說明 |
|---|---|
| 啓用 | 關閉會一併撤掉系統計劃任務和啓動墊片 |
| 每天 / 每隔 | 二選一:每天爲固定時刻(默認 20:00);每隔爲每 N 分鐘(1–1439) |
| 清多少 | 只清 dsh-auth-*(推薦)或整個 Cookies 文件替換 |
| 留備份 | 清理前複製一份,保留最近 3 份 |
| 立即清一次 | 登記爲「等 DSH 完全退出後執行」,最多等 6 小時 |
卡片下方可查看計劃任務狀態、下次運行時間、登錄墊片是否放置、Cookies 庫大小及最近清理記錄。
數據目錄(DSH_HOME 默認爲 %USERPROFILE%\.dsh,若設置了環境變量則以其爲準):
<DSH_HOME>/cookie-guard/
├─ config.json 配置
├─ guard.cmd 計劃任務調用的入口
├─ guard.log 每次清理的記錄
└─ backups/ 備份(開啓備份時)
安裝與啓用¶
只支持 Windows(依賴 schtasks 與啓動文件夾)。桌面版 profile 名爲 desktop;若命令行提示 profile "desktop" is managed exclusively by the Electron application,請改用 Harness 插件管理器安裝。
方式一:從本地目錄¶
解壓 zip 後執行:
dsh plugin --profile desktop add <解壓後的目錄路徑>
或在插件管理器中選擇「從本地目錄安裝」。安裝完成後 重啓 DSH。
方式二:從 GitHub¶
dsh plugin --profile desktop add github:<你的用戶名>/dsh-cookie-guard
將 <你的用戶名> 換爲倉庫所屬用戶(例如維護者 kongbaiwin 時即爲 github:kongbaiwin/dsh-cookie-guard)。非 desktop profile 時把 --profile desktop 換成對應 profile 名。
典型用法¶
- 按上文任一方式安裝並重啓 DSH。
- 打開 設置 → Cookie 清理,啓用開關,選擇「每天 20:00」或合適的「每隔 N 分鐘」。
- 「清多少」保持推薦項「只清
dsh-auth-*」;需要回滾時可開啓「留備份」。 - 若 DSH 已長期未關、庫仍被佔用,可點「立即清一次」,完全退出 DSH 後由外部 cleaner 執行(最多等待 6 小時)。
日誌若出現「Cookies 仍被佔用,跳過」,表示清理時刻 DSH 仍在運行——這是設計行爲,不是失敗。DSH 開着時計劃任務觸發的清理也會跳過;兜底依賴登錄後啓動文件夾墊片觸發的那次。
適用場景與注意¶
適合誰:長期在 Windows 上使用 DSH 桌面版、頻繁重啓本地服務、曾出現或想預防「Web 認證失敗 / 431」的用戶。
限制(README 明確說明):
- DSH 運行時不會清庫,避免硬刪損壞數據。
- 登錄觸發器通過啓動文件夾墊片實現(避免
ONLOGON計劃任務需管理員權限);不需要時可刪除啓動文件夾中的DSH Cookie Guard.vbs。
已無法打開 DSH、無法裝插件時:完全退出 DSH 後,手動刪除:
%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies
%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies-journal
再啓動 DSH,庫會重建,賬號登錄不受影響;之後可再安裝本插件以防再次堆積。
卸載:先在設置中關閉啓用(會清理任務與墊片),再從插件管理器移除插件。
DSH 生態強調「一切皆插件」;社區目錄站點與 DeepSeek / 幻方無官方從屬關係。插件在 DSH 進程權限下運行並會寫系統計劃任務與啓動項,安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合本機安全策略。
參考鏈接¶
- 社區目錄頁:https://www.skillhub.cn/plugins/kongbaiwin/dsh-cookie-guard
- GitHub:https://github.com/kongbaiwin/dsh-cookie-guard