dsh-lan-peers:局域網內 DSH 節點發現、配對與加密互通

前言

在 DeepSeek Harness(DSH)上跑 agent 時,往往有多臺機器都在同一辦公室或家裏網段。要把一段文本或協作上下文送到另一臺 DSH,常見做法是手動記 IP、搭中轉或依賴雲端——對「就在隔壁機器」的場景偏重。dsh-lan-peers 是維護者 Myco-Lee 發佈的工作流類插件:在局域網內用 UDP 自動發現對端,經一次性配對建立加密信道,再通過 agent 工具收發消息;實現上只依賴 Node.js 內置的 node:dgram、node:http、node:crypto,不接入外部服務。跨互聯網場景文檔建議使用姊妹插件 dsh-wan-peers,兩者可並存、互不影響。

下面介紹插件定位、能力與安裝用法,事實以 GitHub 倉庫 README 爲準;社區目錄見 SkillHub 條目。

這是什麼

dsh-lan-peers(npm 包名同名,當前資料版本 0.3.0)面向「同一廣播域內多臺 DSH」:每裝一份插件的實例會週期性廣播自身、維護對端表,併爲 agent 註冊 5 個工具(列對端、配對、發送、收件箱、主動探測)。默認 secure: true:發現層仍開放(他人可見節點名等元數據),但未配對對端不能發消息,舊版明文 HTTP 端點在安全模式下返回 426。

許可證:MIT。Node 引擎要求 >=18。

核心功能

發現與投遞

  1. 發現:默認 UDP 端口 48901,約每 7 秒向各網卡廣播地址及 255.255.255.255 發送 JSON announce;陌生對端會回 announce 做雙向確認;約 30 秒無消息視爲離線。
  2. 投遞:本機另起 HTTP 服務監聽 0.0.0.0:48902(因 DSH 自帶 webServer 多僅綁 127.0.0.1,局域網不可達)。v2 路徑包括 GET /lan/v2/hello、POST /lan/v2/pair/start、POST /lan/v2/message 等;secure: false 時才啓用 v1 明文路徑。

配對與加密(0.3.0)

未配對對端不能走加密消息接口。配對流程要點:

  • 一側 lan_pair action=show 得到 6 位一次性碼(默認 10 分鐘有效,只存哈希,單次使用,每來源 IP 每分鐘最多 5 次試錯)。
  • 另一側 lan_pair action=import peer=… code=…(peer 可爲節點名、id 或局域網 IP)。
  • 握手使用 X25519 ECDH 協商共享密鑰(密鑰不在線傳輸);之後消息 AES-256-GCM 加密,並帶 HMAC-SHA256 簽名(時間戳 ±60 秒與 nonce 防重放)。

配對信息落在 ~/.dsh/lan-peers/peers.d/<peerId>.json(權限 0600),重啓後仍有效;對端換 IP 時發現會更新地址,密鑰按節點 id 綁定。

Agent 工具

工具 作用
lan_peers 列出局域網對端(在線/離線、名字、IP:端口、是否已配對)
lan_pair show / import / list / forget / reset
lan_send 向已配對對端發加密文本
lan_inbox 拉收件箱(limit、mark_read)
lan_ping 立即廣播並探測對端(讀 /lan/v2/hello,不入對方收件箱)

狀態目錄

默認 ~/.dsh/lan-peers,可用環境變量 DSH_LAN_PEERS_HOME 覆蓋。其中含 identity.json、peers.json、peers.d/*.json、inbox.jsonl、status.json、boot.log、lan-peers.log 等。

安裝與啓用

官方 README 給出的安裝方式如下(以 desktop profile 爲例):

dsh plugin --profile desktop add github:Myco-Lee/dsh-lan-peers

安裝後需重啓一次 DSH。可用下列方式粗查是否就緒(示例爲 PowerShell):

Get-NetTCPConnection -State Listen -LocalPort 48902
Get-Content ~\.dsh\lan-peers\boot.log -Tail 5
Get-Content ~\.dsh\lan-peers\status.json

期望看到 0.0.0.0:48902 在監聽,status.json 中 "secure": true 且 tools 已註冊。

README 還提到本地 link 目錄、npm pack 後 file: 安裝等方式,適合改插件源碼時熱重載;日常從 GitHub 安裝用上式即可。

典型用法

配對後發消息

  1. 在機器 B 的會話裏讓 agent 執行(或直接調工具):
lan_pair action=show

示例輸出形態:pairing code 481920 (valid until …)。

  1. 在機器 A 上導入:
lan_pair action=import peer=LMM code=481920

成功後可用 lan_send peer=B text=... 走加密信道。

  1. 管理配對:lan_pair action=list 查看已配對;action=forget peer=X 刪單個;action=reset 清空全部(需重新配對)。

跨機器只讀探測(無需配對)

(Invoke-WebRequest http://<B的IP>:48902/lan/v2/hello -UseBasicParsing).Content

返回含 "ok":true 與 "secure":true 等字段時,說明 HTTP 通道可達。若 Windows 防火牆曾有名爲 DeepSeek Harness 的入站阻止規則,可能擋掉 48902;README 給出禁用相關 Block 規則併爲 TCP 48902、UDP 48901 新建 Allow 規則的 PowerShell 示例,排障時可對照執行。

可選配置

在 profile 補丁層爲插件 id dsh-lan-peers 寫 config:,例如:

- id: dsh-lan-peers
  name: dsh-lan-peers
  config:
    discoveryPort: 48901
    httpPort: 48902
    intervalMs: 7000
    ttlMs: 30000
    name: LMM-1
    maxTextChars: 8000
    maxInbox: 500
    secure: true
    pairingCodeLength: 6
    pairingCodeTtlMs: 600000
    maxPairAttemptsPerMinute: 5
    clockSkewMs: 60000

僅在完全可信內網且需與 0.2.x 行爲對齊時,可設 secure: false;0.2.x 與 0.3.0 默認安全模式不互通,升級時需兩臺同時對齊版本或同時對齊 secure 配置。

適用場景與注意

適合誰:同一 Wi‑Fi/有線網段、多臺 DSH desktop(或同類 profile)、希望 agent 能「看見鄰居、配對一次、之後互發文本」的團隊或個人;不想爲局域網互通單獨部署消息中間件。

安全邊界(README 明示):

  • 發現是開放的:同廣播域內可見節點名、端口、是否展示配對碼等。
  • 傳輸中加密與請求認證有配對與簽名機制保護;本機 inbox.jsonl 存的是解密後明文;勿把 ~/.dsh/lan-peers 同步到不可信位置;勿將 48902 暴露到公網。
  • 插件隨當前 DSH 進程權限運行;安裝前宜自行審閱源碼與 MIT 許可證,確認與內網合規要求一致。

兼容性:資料記載已在 DSH 0.2.2-rc.1(cordis 4.1.0)與 0.2.1-rc.5(cordis 4.0.5)上驗證。

結尾

經過上面的步驟,dsh-lan-peers 把局域網內的 DSH 實例收成一張可發現、可配對、可加密互發消息的對端表,並把操作收斂到少量 agent 工具。需要目錄瀏覽與 issue 跟蹤時,可打開 SkillHub 插件頁 與 GitHub:Myco-Lee/dsh-lan-peers。

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

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

小夜