2.8 KiB
2.8 KiB
Port Manager
一个用于 NAS 的端口管理工具,可以很方便的检查系统当前已经占用的端口,和识别服务。可以用作服务的快速入口(导航)也可以作为选择困难症的随机端口生成器。
主要功能
- 🔍 扫描本地已经占用的端口
- 🎯 识别端口所对应的服务
- 🚀 快速访问服务 (Web界面导航)
- 🎲 随机生成一个非占用的端口
- 📱 现代化的Web界面
- 💻 命令行模式支持
安装和使用
从源码构建
git clone https://github.com/miaomint/port-manager.git
cd port-manager
go mod tidy
go build -o bin/port-manager cmd/port-manager/main.go
使用方法
1. Web界面模式(推荐)
# 默认在8080端口启动Web界面
./bin/port-manager
# 指定端口启动
./bin/port-manager -port 9000
然后在浏览器中访问 http://localhost:8080
2. 命令行模式
# 扫描端口并在终端显示
./bin/port-manager -scan
# 生成随机可用端口
./bin/port-manager -random
# 在指定范围内生成随机端口
./bin/port-manager -random -min 3000 -max 4000
# 查看帮助
./bin/port-manager -help
支持的服务识别
本工具内置了常见服务的端口识别,包括:
Web服务
- HTTP (80, 8080, 3000, 4000, 5000, 8000)
- HTTPS (443, 8443, 5001)
- 开发服务器 (React, Node.js, Flask, Django等)
数据库
- MySQL (3306)
- PostgreSQL (5432)
- MongoDB (27017)
- Redis (6379)
- Memcached (11211)
NAS相关
- Synology DSM (5000, 5001)
- SMB/CIFS (445)
- AFP (548)
- NFS (2049)
- 常见下载工具 (Sonarr, Radarr, Jackett等)
开发工具
- Grafana (3001)
- Prometheus (9090)
- Elasticsearch (9200)
- Kibana (5601)
- Jupyter (8888)
其他
- SSH (22)
- FTP (21)
- DNS (53)
- 等等...
项目结构
本项目遵循标准的 Go 项目结构:
port-manager/
├── cmd/
│ └── port-manager/ # 主程序入口
│ └── main.go
├── internal/ # 内部包,不对外暴露
│ ├── scanner/ # 端口扫描功能
│ ├── service/ # 服务识别功能
│ └── web/ # Web服务器
├── pkg/ # 可被外部使用的包
│ └── types/ # 类型定义
├── go.mod
├── go.sum
└── README.md
Web界面特性
- 📊 实时端口扫描
- 🎨 现代化响应式设计
- 🔗 一键访问已识别的Web服务
- 🎲 随机端口生成器
- 📱 移动端友好
- ⚡ 快速加载
开发
依赖
- Go 1.21+
- 仅使用标准库,无外部依赖
运行开发版本
go run cmd/port-manager/main.go
运行测试
go test ./...
贡献
欢迎提交 Issue 和 Pull Request!
许可证
MIT License