轻量级网络端口监控工具

温馨提醒
总结摘要
Port Monitor 是一款基于 Go 语言开发的轻量级 Web 端口监控工具,支持实时查看 TCP/UDP 服务状态与网络接口信息。提供可视化界面、自定义服务命名、URL 路径映射、端口生成器及一键复制等功能,适用于多服务部署场景下的快速定位与访问。支持 RPM/DEB 包一键安装,开箱即用,无前端框架依赖,资源占用极低。

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等):

1
2
# 通过URL直接安装(示例版本1.0.1)
sudo rpm -ivh https://github.com/db-root/port-monitor/blob/master/dist/port-monitor-1.0.1-1.el8.x86_64.rpm

2. DEB包安装(适用于Debian/Ubuntu等):

1
2
3
# 通过URL直接安装(示例版本1.0.1)
wget https://github.com/db-root/port-monitor/blob/master/dist/port-monitor_1.0.1_amd64.deb
sudo dpkg -i port-monitor_1.0.1_amd64.deb

启动服务

安装完成后,使用以下命令启动服务:

1
sudo systemctl enable --now port-monitor

默认情况下,服务将在0.0.0.0:10810上监听,您可以通过浏览器访问http://your-server-ip:10810来使用该工具。

开发模式运行

如果您想在开发环境中直接运行项目,可以使用以下命令:

1
go run main.go

然后在浏览器中访问 http://localhost:10810

配置文件

默认配置文件位于/opt/port-monitor/config.yaml

1
2
3
4
5
service-config:
  - addr: "0.0.0.0"          # 监听地址
    port: 10810              # 监听端口
    exclude: "lo,br-,veth,docker0"  # 忽略的网卡前缀
    get_ip_url: "https://4.ipw.cn"  # 公网IP服务地址

使用说明

  1. 网络接口监控:在"网络接口"区域,您可以查看所有网络接口的IP地址信息,并通过开关控制是否为特定接口生成访问链接。

  2. 服务监控:在"运行中的服务"区域,服务按协议类型分为四个标签页展示。您可以点击表格头部的"监听地址"或"状态"列进行排序。

  3. 自定义配置

    • 点击服务名称旁边的编辑图标可以自定义服务名称
    • 点击URL路径旁边的编辑图标可以设置特定路径
    • 点击表格右上角的齿轮图标可以配置表格列的显示/隐藏
  4. 端口生成器:在"生成端口"区域,您可以选择端口数量和范围,点击"生成端口"按钮获取空闲端口,支持一键复制。

项目地址

项目已开源,欢迎访问我的GitHub仓库获取最新代码和文档: https://github.com/db-root/port-monitor

总结

Port Monitor是我为解决日常系统监控需求而开发的一个实用工具。它具有轻量、易用、功能全面的特点,特别适合系统管理员和开发运维人员使用。通过这个工具,您可以更直观地了解服务器的网络服务状态,提高工作效率。

欢迎大家试用并提出宝贵意见,如果有任何问题或建议,欢迎在GitHub上提交issue或pull request.