DSH 插件生态支持通过插件扩展客户端能力。对于开发者而言,查看本地监听端口、关联进程以及快速处理端口问题(如占用或异常)是日常高频需求。dsh-port-manager 是一个本地运行的插件,它将端口信息直接集成到 DSH 的右侧边栏中,提供可视化的查看和操作入口。
插件概览¶
这是一个零运行时依赖的客户端插件,由 wyzh0117 维护,采用 MIT 许可证。它通过注册右侧边栏的 Guide 页面胶囊来提供入口,数据采集和渲染完全在本地完成。
核心功能¶
侧边栏入口
在右侧边栏的 Guide 页面中,插件会注册一个顺序为 15 的胶囊,点击即可在当前 Pane 中打开端口管理面板。
端口列表与详情
面板列出当前机器的所有监听端口,包含以下信息:
* 协议与端口
* 绑定范围(仅本机、局域网、全部接口)
* 应用详情(应用名、分类徽章)
* 进程信息(PID、CPU、内存)
* 工作目录
* 容器信息(若通过 Docker 端口映射关联)
端口操作
支持一键操作:
* 打开:在系统浏览器中打开对应地址。
* 复制:提供多种格式(URL、lsof 命令、kill 命令、工作目录路径等)。
* 详情:展开显示完整命令行、父进程链、所有绑定及 HTTP 探测结果(包含状态码、延迟等)。
* 定位:在文件管理器中打开工作目录。
* 结束:支持 SIGTERM 优雅终止,若 1.7 秒后进程仍存活则升级为 SIGKILL。
过滤与控制
* 工具栏显示端口总数、应用数、暴露端口数及最后扫描时间。
* 支持搜索(端口、应用、命令、目录、容器名)。
* 过滤器:全部 / 仅本机 / 对外暴露 / 可结束。
* 排序:端口、应用、CPU、内存。
* 刷新:手动 / 3s / 10s / 30s 自动刷新。
安装与启用¶
- 进入插件目录。
- 执行安装命令。
cd /path/to/dsh-PortManager
dsh plugin --profile web add "link:$PWD"
- 重启
dsh web。由于安装了新的 bundle 层,必须重启dsh web才能使插件生效。
验证安装:
node -e 'const h=process.env.DSH_HOME??process.env.HOME+"/.dsh";const p=require(h+"/profiles/web/package.json");console.log(p.dependencies["dsh-port-manager"], p.dsh.profile.bundles)'
卸载:
dsh plugin --profile web remove dsh-port-manager
使用方式¶
安装并重启后,打开 DSH 右侧边栏,点击 “Port Manager” 胶囊。面板加载完成后,可以通过工具栏的搜索框过滤端口,或点击卡片上的操作按钮(如打开、复制、结束)快速处理端口相关任务。
兼容性与注意事项¶
- 平台支持:macOS 和 Linux 完全支持。Windows 因系统命令限制,扫描会报错且列表为空。
- UI 语言:面板 UI 目前仅支持简体中文,暂无国际化支持。
- 环境要求:DSH 版本需在
^0.1.5-rc.1以上,Node.js 版本需>= 20。
该插件以 DSH 进程的权限运行,安装前建议检查源码与许可证。