dsh-console-hub:網絡設備 Telnet/Raw TCP 會話與指令控制插件

在 DSH 智能體開發中,網絡設備的控制台交互往往依賴外部工具。對於使用串口服務器或終端服務器映射網絡設備 Console 的情況,通用的方案通常缺乏細粒度的會話管理與指令攔截能力。dsh-console-hub 插件旨在解決這一痛點,提供經 Telnet 或 Raw TCP 連接設備控制台的能力,並支持會話管理、命令交互及高危指令審批。

這是一個面向網絡設備 console 映射端口的 DSH 插件。它通過 Telnet 或 Raw TCP 協議連接設備控制台,提供會話管理、設備配置增刪改查、命令交互以及分頁自動處理等功能。

核心功能

  1. 連接與會話管理:經 Telnet 或 Raw TCP 連接設備控制台,提供會話管理(連接、發送、讀取、喚醒、關閉)。
  2. 設備配置管理:提供設備配置管理(增刪改查)。
  3. 分頁自動處理:支持分頁自動處理(auto-more / auto-quit / auto-interrupt / manual)。
  4. 指令攔截與審批:支持高危指令攔截與審批機制。
  5. 休眠檢測與喚醒:支持會話休眠檢測與自動喚醒。

安裝與啓用

安裝該插件需要先滿足前提條件(Node.js、Harness 版本及 dsh-better-sidebar)。安裝完成後重啓 Harness。

dsh plugin --profile web add github:RBkreb/dsh-console-hub

典型用法

插件註冊了 console_* 系列工具。核心流程是先通過 console_upsert_view 配置設備清單,再使用 console_connect 連接設備,隨後通過 console_send 發送文本命令,利用 console_wait_for 等待設備提示符或模式。

配置設備清單的示例:

# 配置設備清單
console_upsert_view:
  viewId: "router-01"
  name: "Core Router"
  host: "192.168.1.1"
  port: 23
  kind: "telnet"
  password: "secret"

配置項

配置項主要分爲連接與讀取、分頁與休眠、攔截與模型三類。

連接與讀取

  • trustedHosts:非迴環部署被訪問的 host:port(或僅 host);未聲明拒絕所有請求。
  • defaultKind:默認連接類型,支持 'telnet' 或 'raw'。
  • defaultEncoding:默認編碼,支持 utf-8 / gbk / gb18030 / big5 / shift_jis / euc-kr / latin1。
  • connectTimeoutMs:socket 連接預算,默認 8000ms。
  • readTimeoutMs:單次 read 等待新字節的時長,默認 15000ms。
  • idleTimeoutMs:空閒控制台回收時長,默認 600000ms(10分鐘)。

分頁與休眠

  • pagingMode:缺省分頁反應,可選 auto-more / auto-quit / auto-interrupt / manual。
  • dormantAutoWake:檢測到半關閉標記時自動喚醒,默認 true。
  • wakeOnConnect:連接自動輸入回車,默認 true。

攔截與模型

  • approvalMode:攔截模式,可選 always(每條提問)或 high-risk(僅未命中規則放行)。
  • fenceRules:高危攔截規則數組,支持 deny(直接拒絕)、ask(人工確認)、allow(放行)動作。

限制與安全

  • 協議限制:僅支持 Telnet / Raw TCP,不支持 SSH 或串口直連。
  • 依賴正則:提示符、分頁、休眠識別依賴正則,部分 CLI 需要調整。
  • 會話隔離:控制台池全宿主共享,無會話隔離。
  • 安全建議:高危攔截是防護欄不是沙箱,建議同時在設備側限制權限。
  • 權限範圍:對已配置設備發起出站 TCP;不執行 shell;無 PTY。

適用場景與注意

適用於使用串口服務器映射網絡設備的場景。使用前應檢查源碼與許可證(MIT)。安裝前應檢查 Node.js 版本(>=22.19.0)及 Harness 版本依賴。

該項目由 RBkreb 維護,爲 DSH 生態提供了網絡設備控制台的標準接入能力。

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

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

小夜