dsh-lan-share:DeepSeek Harness 的局域網文件共享插件

前言

在智能體開發或日常調試中,經常需要將本地工作區的產物快速分享給手機、平板或同事的電腦。現有的 DSH 插件方案各有側重:dsh-lan-gate 或 dsh-plugin-remote-access 代理的是 DSH 網頁端,訪問需要登錄或設備審批;dsh-ssh 針對遠程服務器執行與 SFTP;dsh-webfile 則連接遠程存儲(如 S3、FTP)。

dsh-lan-share 解決的是本機工作區文件的純局域網 HTTP 共享問題。它不依賴額外的服務端,利用 Node.js 原生模塊,讓同一局域網內的設備通過瀏覽器直接瀏覽、下載或上傳文件,無需登錄 DSH 系統。

核心功能

該插件提供了一套完整的文件共享能力:

  • HTTP 共享:將本地工作區通過 HTTP 協議暴露,支持手機、平板或其他電腦的瀏覽器直接訪問。
  • 零依賴:僅使用 Node.js 原生 node:http 模塊,無需安裝額外服務。
  • 安全門禁:支持 Token 門禁,防止未授權訪問。可配置固定口令,每個口令可獨立設置角色(只讀/讀寫)和過期時間。
  • 路徑邊界:通過解析機制防止 ../ 絕對路徑越界攻擊。
  • 只讀模式:可開啓只讀模式,限制上傳、刪除和移動操作。
  • 限流保護:默認每 IP 每分鐘 120 請求,超限返回 429 狀態碼。
  • 敏感文件隱藏:自動過濾 .env、憑據類文件(credentials.yaml、.netrc)、密鑰(*.pem、*.key、*.pfx)、node_modules、.git 等目錄和文件。

安裝與啓用

在 DeepSeek Harness 的配置文件(如 dsh.profile 或 cordis.yml)中添加以下條目:

plugins:
  - id: tool-lan-share
    name: 'dsh-lan-share'

典型用法

插件提供了三個核心命令來控制共享服務。

1. 啓動共享

執行 lan_share_start 命令啓動服務。你可以通過參數指定端口、Token、只讀模式或子目錄。

lan_share_start → {
  "ok": true,
  "running": true,
  "port": 3980,
  "root": "F:/work",
  "readOnly": false,
  "urls": ["http://192.168.1.5:3980/?token=9f2c...", "..."],
  "token": "9f2c..."
}

2. 查看狀態

使用 lan_share_status 查看當前共享服務的運行狀態、訪問地址、Token 以及文件統計信息。

3. 停止共享

使用 lan_share_stop 停止服務。

4. 訪問與操作

在局域網內任意設備的瀏覽器輸入返回的 URL(包含 token)。在讀寫模式下,支持拖拽上傳、點擊下載;在只讀模式下,僅支持瀏覽目錄樹和下載文件。

5. 配置固定口令

除了啓動時生成的隨機 Token,還可以配置固定口令。在 lan_share_start 中傳入 passwords 數組:

lan_share_start → { passwords: [
  { password: "family", role: "read",  expiresIn: "3d" },
  { password: "admin",  role: "write", expiresIn: "long" },
] }

瀏覽器訪問時,可在 URL 參數 ?password= 或請求頭 X-Password 中傳入對應口令。

配置項

在 DSH 的 settings 中可以配置 lan-share 命名空間下的參數:

lan-share:
  port: 3980            # 監聽端口
  host: 0.0.0.0         # 監聽地址,0.0.0.0 爲全局域網,127.0.0.1 僅本機
  readOnly: false       # 默認只讀模式
  rateLimitPerMin: 120  # 每 IP 限流(請求次數)
  hideSensitive: true   # 是否隱藏敏感文件

注意事項

  • Node 版本要求:插件需要 Node.js 版本 ^22.19.0 || >=24.0.0。
  • 代碼路徑:核心邏輯位於 src/lan-share-core.ts。
  • 訪問控制默認:默認 allowOpenAccess: false,即必須通過 Token 或固定口令驗證才能訪問。若需局域網內任何設備免口令訪問,需手動開啓該選項。
  • 權限範圍:插件以當前 DSH 進程的權限運行,請確保配置好相關目錄的讀寫權限。

生態背景

DeepSeek Harness(DSH)採用“一切皆插件”的理念。dsh-lan-share 是社區維護的插件,其目錄頁與 GitHub 倉庫可參考下方鏈接。

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

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

小夜