介绍
Auto-UPnP 是一个智能的端口映射解决方案,专为 NAS 和路由器设备设计。它能够自动监控端口状态变化,并通过 UPnP 协议自动管理端口映射,让端口暴露变得简单智能。
什么是 Auto-UPnP?
Auto-UPnP 是一个用 Go 语言开发的开源工具,主要功能包括:
- 自动端口监控:监控指定端口范围的状态变化
- 智能映射管理:自动添加和删除 UPnP 端口映射
- Web 管理界面:提供现代化的 Web 界面进行管理
- 多平台支持:支持 Linux、OpenWrt、飞牛 NAS、macOS、Windows 等平台
- RESTful API:提供完整的 API 接口支持程序化操作
- 安全认证:支持用户认证、HTTPS、访问控制
核心特性
🎯 自动端口映射
- 智能端口检测:监控指定端口范围的上下线状态
- 实时状态更新:毫秒级响应端口状态变化
- 多协议支持:同时支持 TCP 和 UDP 协议监控
- 智能重试机制:自动重试失败的端口检测
- 映射持久化:自动保存手动映射,服务重启后自动恢复
- 映射清理:定期清理过期和无效的端口映射
📈 端口状态可视化
- 图形化显示:显示所有监控端口的活跃状态
- 实时更新:每5秒自动刷新状态信息
- 状态筛选:支持按协议、状态、映射状态筛选
- 搜索功能:快速查找特定端口
- 统计信息:显示活跃端口数量、总映射数等
🌐 Web 管理界面
- 响应式设计:支持桌面和移动设备访问
- 实时数据更新:每5秒自动刷新状态信息
- 可视化监控:图形化显示端口活跃状态和映射情况
- RESTful API:提供完整的 API 接口支持程序化操作
- 用户认证:支持用户名密码保护
- 操作日志:完整的操作日志记录
🔐 安全与认证
- 基本认证:用户名密码保护管理界面
- HTTPS支持:可配置 SSL 证书支持安全访问
- 访问控制:可限制管理界面访问 IP 地址
- 日志审计:完整的操作日志记录
- 权限管理:细粒度的权限控制
⚙️ 灵活配置
- YAML配置:人性化的配置文件格式
- 热重载:支持运行时配置更新
- 多环境支持:开发、测试、生产环境配置分离
- 网络接口选择:支持指定优先和排除的网络接口
- 日志配置:支持多种日志格式和级别
技术架构
核心组件
1. 端口监控器 (PortMonitor)
- 自动端口监控:监控指定端口范围的状态变化
- 手动端口监控:监控手动添加的端口映射
- 多协议支持:支持 TCP 和 UDP 协议检测
- 智能重试:自动重试失败的端口检测
2. UPnP管理器 (UPnPManager)
- 设备发现:自动发现网络中的 UPnP 设备
- 映射管理:添加、删除、查询端口映射
- 协议处理:处理 UPnP 协议通信
- 错误处理:处理 UPnP 协议相关的错误和重试
3. 自动UPnP服务 (AutoUPnPService)
- 服务协调:协调端口监控和 UPnP 管理
- 自动映射逻辑:根据端口状态自动管理映射
- 手动映射管理:管理手动映射的持久化
- 状态管理:维护服务状态和统计信息
4. Web管理界面 (Admin)
- HTTP服务器:提供 Web 管理界面
- RESTful API:实现完整的 API 接口
- 模板渲染:提供现代化的 Web 界面
- 认证授权:处理用户认证和权限控制
数据流
端口监控器 → 状态变化事件 → 自动UPnP服务 → UPnP管理器 → 路由器
↓
Web管理界面 ← RESTful API ← 状态查询 ← 服务状态
适用场景
Auto-UPnP 特别适用于以下场景:
🏠 家庭网络
- NAS 设备:自动暴露 NAS 服务端口
- 路由器设备:管理路由器上的端口映射
- 智能家居:管理智能设备的端口映射
- 游戏服务器:自动管理游戏服务器端口
系统要求
最低要求
- 操作系统:Linux (x86_64, ARM64), macOS, Windows
- 内存:64MB RAM
- 存储:10MB 可用空间
- 网络:支持 UPnP 的路由器
- 权限:需要网络访问权限
推荐配置
- 操作系统:Ubuntu 20.04+, CentOS 8+, OpenWrt 21.02+
- 内存:128MB RAM
- 存储:50MB 可用空间
- 网络:千兆网络环境
- Go版本:1.21 或更高版本(开发环境)
快速开始
想要立即体验 Auto-UPnP?请查看 安装教程 开始使用。
技术优势
🚀 高性能
- 轻量级设计:资源占用少,启动快速
- 并发处理:支持高并发端口监控
- 内存优化:高效的内存使用
- 网络优化:优化的网络通信
🔒 安全可靠
- 协议安全:基于标准的 UPnP 协议
- 认证机制:多层次的安全认证
- 日志审计:完整的操作日志
- 错误处理:健壮的错误处理机制
🛠️ 易于使用
- 一键安装:提供自动化安装脚本
- 配置简单:人性化的配置文件
- 界面友好:现代化的 Web 界面
- 文档完善:详细的使用文档
🔧 高度可定制
- 灵活配置:丰富的配置选项
- 插件扩展:支持功能扩展
- API 接口:完整的编程接口
- 多平台:跨平台支持