# Localhost-Dashboard **Repository Path**: magic_dragon/localhost-dashboard ## Basic Information - **Project Name**: Localhost-Dashboard - **Description**: 本地端口仪表盘,启动后打开浏览器,告诉你电脑上哪些端口在跑、是谁在跑、属于哪个项目. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🔌 Localhost Dashboard > 一个 Go 单文件工具,启动后打开浏览器,告诉你「电脑上哪些端口在跑、是谁在跑、属于哪个项目」。 ![Go](https://img.shields.io/badge/Go-1.24+-00ADD8?style=flat&logo=go) ![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-blue) ![License](https://img.shields.io/badge/License-MIT-green) --- ## ✨ 功能特性 ### 🔍 端口嗅探 自动扫描本地所有 TCP LISTENING 端口,实时展示端口号、协议、监听状态。 ### 🕵️ 进程反查 根据 PID 追溯到具体进程,显示进程名、完整启动命令、工作目录。 ### 🏷️ 智能项目识别 自动识别 30+ 种常见服务类型: | 类别 | 识别框架 | |------|---------| | 前端 | Vite、Next.js、Nuxt、Angular、React (CRA)、Vue CLI、SvelteKit、Remix、Webpack、Parcel | | 后端 | Django、Flask、FastAPI、Gunicorn、Spring Boot、Rails | | 数据库 | PostgreSQL、MySQL、Redis、MongoDB | | 服务器 | Nginx、Apache、Caddy、Tomcat | | 运行时 | Node.js、Deno、Bun、Go、Python、Java、PHP、.NET、Rust | | 容器 | Docker | 未匹配时自动读取 `package.json` 的 `name` 字段或使用目录名。 ### ⚡ 一键终止 点击 Kill 按钮,强制结束占用端口的进程,自动刷新列表。 ### 📊 资源监控 实时显示每个进程的 CPU 和内存占用。 ### 🌓 明暗主题 一键切换深色/浅色主题,选择自动保存到浏览器。 ### 📁 导出功能 支持 JSON 和 CSV 两种格式导出端口数据,CSV 兼容 Excel 中文显示。 ### 🗂️ 分组视图 按项目路径分组展示,同一项目的多个端口聚合在一起。 ### 🔗 快速访问 点击端口号直接在浏览器打开 `http://localhost:PORT`。 --- ## 🚀 快速开始 ### 下载安装 从 [Releases](../../releases) 页面下载对应平台的二进制文件。 ### 从源码构建 ```bash git clone https://github.com/yourname/Localhost_Dashboard.git cd Localhost_Dashboard go build -o localhost-dashboard . ``` ### 一键打包所有平台 ```bash bash build.sh ``` 产物输出到 `dist/` 目录,支持 6 个平台: | 文件 | 平台 | |------|------| | `localhost-dashboard-linux-amd64` | Linux x86_64 | | `localhost-dashboard-linux-arm64` | Linux ARM64 | | `localhost-dashboard-darwin-amd64` | macOS Intel | | `localhost-dashboard-darwin-arm64` | macOS Apple Silicon | | `localhost-dashboard-windows-amd64.exe` | Windows x86_64 | | `localhost-dashboard-windows-arm64.exe` | Windows ARM64 | ### 运行 ```bash # 直接运行,自动打开浏览器 ./localhost-dashboard # 指定端口 ./localhost-dashboard -port 8080 # 不自动打开浏览器 ./localhost-dashboard -no-open # 查看版本 ./localhost-dashboard -version ``` 启动后访问 http://localhost:7890 即可看到仪表盘。 --- ## 📸 截图 ### 深色主题 ![Dark Theme](img/1.png) ### 浅色主题 ![Light Theme](img/2.png) --- ## 🏗️ 项目结构 ``` Localhost_Dashboard/ ├── main.go # 入口:命令行参数、HTTP 服务、优雅关闭 ├── types.go # 共享类型定义、项目指纹识别逻辑 ├── handler.go # HTTP API 处理(端口查询、Kill、导出、系统信息) ├── template.go # 前端界面(HTML/CSS/JS 内嵌) ├── platform_linux.go # Linux 平台实现(lsof + /proc) ├── platform_darwin.go # macOS 平台实现(lsof) ├── platform_windows.go # Windows 平台实现(netstat + wmic) ├── build.sh # 多平台打包脚本 ├── Makefile # Make 构建 ├── .golangci.yml # Lint 配置 └── go.mod # Go 模块定义 ``` --- ## 🔧 API 接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/ports` | GET | 获取所有监听端口信息 | | `/api/kill?pid=` | POST | 终止指定进程 | | `/api/export?format=json` | GET | 导出 JSON 格式 | | `/api/export?format=csv` | GET | 导出 CSV 格式 | | `/api/system` | GET | 获取系统信息 | --- ## 🛡️ 安全设计 - **CSRF 防护**:Kill API 校验 Content-Type,拒绝非预期请求 - **XSS 防护**:前端对所有用户数据做 HTML 转义和属性转义 - **自保护**:Dashboard 自身进程不可被 Kill - **输入校验**:PID 参数严格验证,防止注入 --- ## ⚙️ 技术栈 - **后端**:Go 1.24+,零外部依赖,纯标准库实现 - **前端**:原生 HTML/CSS/JS,无框架依赖,单文件内嵌 - **跨平台**:通过 Go 编译标签实现 Linux/macOS/Windows 三平台适配 --- ## 📋 依赖说明 本工具需要调用系统命令获取端口和进程信息: | 平台 | 依赖命令 | |------|---------| | Linux | `lsof`、`ps` | | macOS | `lsof`、`ps` | | Windows | `netstat`、`tasklist`、`wmic`(系统自带) | > Linux/macOS 用户需确保 `lsof` 已安装(通常系统自带)。 --- ## 📄 开源协议 [MIT License](LICENSE) --- ## 🙏 致谢 灵感来源于开发过程中频繁遇到「端口被占但不知道是谁」的痛点,希望这个小工具能帮你省下排查时间。 --- ## ☕ 赞赏支持 如果这个工具对你有帮助,欢迎请我喝杯咖啡 ☕ 赞赏码