146 lines
2.8 KiB
Markdown
146 lines
2.8 KiB
Markdown
# Port Manager
|
||
|
||
一个用于 NAS 的端口管理工具,可以很方便的检查系统当前已经占用的端口,和识别服务。可以用作服务的快速入口(导航)也可以作为选择困难症的随机端口生成器。
|
||
|
||
## 主要功能
|
||
|
||
- 🔍 扫描本地已经占用的端口
|
||
- 🎯 识别端口所对应的服务
|
||
- 🚀 快速访问服务 (Web界面导航)
|
||
- 🎲 随机生成一个非占用的端口
|
||
- 📱 现代化的Web界面
|
||
- 💻 命令行模式支持
|
||
|
||
## 安装和使用
|
||
|
||
### 从源码构建
|
||
|
||
```bash
|
||
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界面模式(推荐)
|
||
|
||
```bash
|
||
# 默认在8080端口启动Web界面
|
||
./bin/port-manager
|
||
|
||
# 指定端口启动
|
||
./bin/port-manager -port 9000
|
||
```
|
||
|
||
然后在浏览器中访问 `http://localhost:8080`
|
||
|
||
#### 2. 命令行模式
|
||
|
||
```bash
|
||
# 扫描端口并在终端显示
|
||
./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+
|
||
- 仅使用标准库,无外部依赖
|
||
|
||
### 运行开发版本
|
||
|
||
```bash
|
||
go run cmd/port-manager/main.go
|
||
```
|
||
|
||
### 运行测试
|
||
|
||
```bash
|
||
go test ./...
|
||
```
|
||
|
||
## 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 许可证
|
||
|
||
MIT License
|