轻量级网络端口监控工具
Port Monitor - 轻量级网络端口监控工具
今天想和大家分享一个我自己开发的网络监控工具——Port Monitor。这是一个用Go语言编写的轻量级网络端口监控工具,主要用于实时监控系统中的TCP/UDP服务和网络接口状态。
项目背景
在日常的系统管理和开发运维工作中,我经常需要查看服务器上运行的服务和监听的端口。虽然Linux系统提供了ss、netstat等命令行工具,但它们的输出信息不够直观,而且无法提供持续的监控视图。因此,我决定开发一个可视化的端口监控工具,这就是Port Monitor项目的由来。
仓库地址
https://github.com/db-root/port-monitor
功能特性
Port Monitor具有以下主要功能:
1. 网络接口监控
- 实时显示所有网络接口及其IP地址信息
- 支持排除特定网络接口(如docker0、lo等虚拟接口)
- 可以控制是否为特定接口生成访问链接
2. 服务监控
- 实时监控系统TCP和UDP端口使用情况
- 显示服务进程名称、协议、监听地址、状态等详细信息
- 支持按协议类型分类显示(TCPv4、TCPv6、UDPv4、UDPv6)
3. 用户自定义配置
- 允许用户自定义服务名称并保存到配置文件
- 支持自定义URL路径映射,方便直接访问服务
- 可配置表格列的显示/隐藏,个性化界面展示
- 支持一键复制功能,快速获取所需信息
4. 端口生成器
- 可以生成指定范围内的随机空闲端口
- 支持多个预设范围选择(1000-10000、10001-30000等)
- 适用于需要部署新服务时寻找可用端口的场景
技术架构
Port Monitor采用前后端分离架构设计:
- 后端:使用Go语言编写,基于内置net/http包提供Web服务
- 前端:原生HTML/CSS/JavaScript实现,无框架依赖
- 数据存储:用户配置以JSON格式保存在data.json文件中
- 配置管理:系统配置使用YAML格式(config.yaml)
这种架构使得整个应用非常轻量,易于部署和维护。
安装与使用
系统要求
- 支持RPM或DEB包管理的Linux发行版
- 需要安装ss工具(通常包含在iproute2包中)
安装步骤
Port Monitor支持多种安装方式,推荐使用预构建的安装包:
1. RPM包安装(适用于CentOS/RHEL/Fedora等):
2. DEB包安装(适用于Debian/Ubuntu等):
启动服务
安装完成后,使用以下命令启动服务:
| |
默认情况下,服务将在0.0.0.0:10810上监听,您可以通过浏览器访问http://your-server-ip:10810来使用该工具。
开发模式运行
如果您想在开发环境中直接运行项目,可以使用以下命令:
| |
然后在浏览器中访问 http://localhost:10810
配置文件
默认配置文件位于/opt/port-monitor/config.yaml:
使用说明
网络接口监控:在"网络接口"区域,您可以查看所有网络接口的IP地址信息,并通过开关控制是否为特定接口生成访问链接。
服务监控:在"运行中的服务"区域,服务按协议类型分为四个标签页展示。您可以点击表格头部的"监听地址"或"状态"列进行排序。
自定义配置:
- 点击服务名称旁边的编辑图标可以自定义服务名称
- 点击URL路径旁边的编辑图标可以设置特定路径
- 点击表格右上角的齿轮图标可以配置表格列的显示/隐藏
端口生成器:在"生成端口"区域,您可以选择端口数量和范围,点击"生成端口"按钮获取空闲端口,支持一键复制。
项目地址
项目已开源,欢迎访问我的GitHub仓库获取最新代码和文档: https://github.com/db-root/port-monitor
总结
Port Monitor是我为解决日常系统监控需求而开发的一个实用工具。它具有轻量、易用、功能全面的特点,特别适合系统管理员和开发运维人员使用。通过这个工具,您可以更直观地了解服务器的网络服务状态,提高工作效率。
欢迎大家试用并提出宝贵意见,如果有任何问题或建议,欢迎在GitHub上提交issue或pull request.