快速开始
欢迎使用 Auto-UPnP!本指南将帮助您快速安装和配置 Auto-UPnP。
系统要求
最低要求
- 操作系统:Linux (x86_64, ARM64), macOS, Windows
- 内存:64MB RAM
- 存储:10MB 可用空间
- 网络:支持 UPnP 的路由器
- 权限:需要网络访问权限
推荐配置
- 操作系统:Ubuntu 20.04+, CentOS 8+, OpenWrt 21.02+
- 内存:128MB RAM
- 存储:50MB 可用空间
- 网络:千兆网络环境
- Go版本:1.21 或更高版本(开发环境)
安装方式
方式一:一键安装脚本(推荐)
自动安装
bash
# 下载并执行安装脚本
curl -fsSL https://raw.githubusercontent.com/javen-yan/auto-upnp/master/install.sh | sudo bash
# 或者使用 wget
wget -qO- https://raw.githubusercontent.com/javen-yan/auto-upnp/master/install.sh | sudo bash
分步安装
bash
# 1. 下载安装脚本
wget https://raw.githubusercontent.com/javen-yan/auto-upnp/master/install.sh
# 2. 设置执行权限
chmod +x install.sh
# 3. 执行安装
sudo ./install.sh
安装脚本会自动完成:
- 下载最新 release 版本
- 生成默认配置文件到
/etc/auto-upnp/config.yaml
- 创建 systemd 服务文件
- 设置日志目录和权限
- 创建数据目录
方式二:手动安装
1. 下载最新版本
bash
# 获取最新版本号
VERSION=$(curl -s https://api.github.com/repos/javen-yan/auto-upnp/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
# 检测系统架构
ARCH=$(uname -m)
case $ARCH in
x86_64) ARCH="amd64" ;;
aarch64|arm64) ARCH="arm64" ;;
*) echo "不支持的架构: $ARCH"; exit 1 ;;
esac
# 下载对应平台的二进制文件
wget https://github.com/javen-yan/auto-upnp/releases/download/${VERSION}/auto-upnp-${OS}-${ARCH}
2. 解压并安装
bash
# 解压文件
tar -xzf auto-upnp-${VERSION}-linux-amd64.tar.gz
# 移动到系统目录
sudo mv auto-upnp /usr/local/bin/
# 设置执行权限
sudo chmod +x /usr/local/bin/auto-upnp
3. 创建配置文件
bash
# 创建配置目录
sudo mkdir -p /etc/auto-upnp
# 创建配置文件
sudo tee /etc/auto-upnp/config.yaml > /dev/null <<EOF
# 自动UPnP服务配置文件
# 端口监听范围配置
port_range:
start: 18000 # 起始端口
end: 19000 # 结束端口
step: 1 # 端口间隔
# UPnP配置
upnp:
discovery_timeout: 10s # 设备发现超时时间
mapping_duration: 1h # 端口映射持续时间,0表示永久
retry_attempts: 3 # 重试次数
retry_delay: 5s # 重试延迟
# 网络接口配置
network:
preferred_interfaces: ["eth0", "wlan0"] # 优先使用的网络接口
exclude_interfaces: ["lo", "docker"] # 排除的网络接口
# 日志配置
log:
level: "info"
format: "json"
file: "/var/log/auto-upnp.log"
max_size: 10485760 # 10MB
backup_count: 5
# 监控配置
monitor:
check_interval: 30s # 端口状态检查间隔
cleanup_interval: 5m # 清理无效映射间隔
max_mappings: 100 # 最大端口映射数量
# 管理服务配置
admin:
enabled: true # 是否启用管理服务
host: "0.0.0.0" # 监听地址
username: "admin" # 用户名
password: "admin" # 密码
data_dir: "/var/lib/auto-upnp" # 数据目录
EOF
方式三:从源码编译
1. 克隆项目
bash
git clone https://github.com/javen-yan/auto-upnp.git
cd auto-upnp
2. 安装依赖
bash
# 安装 Go 依赖
go mod tidy
# 安装构建工具
go install github.com/goreleaser/goreleaser@latest
3. 构建项目
bash
# 普通构建
make build
# 静态构建(解决 GLIBC 版本问题)
make build-static
# 构建所有平台版本
make build-all
4. 安装到系统
bash
# 复制二进制文件
sudo cp build/auto-upnp-static /usr/local/bin/auto-upnp
# 复制配置文件
sudo cp config.yaml /etc/auto-upnp/config.yaml
启动服务
使用 systemd 服务(推荐)
1. 创建服务文件
bash
sudo tee /etc/systemd/system/auto-upnp.service > /dev/null <<EOF
[Unit]
Description=Auto-UPnP Service
Documentation=https://github.com/javen-yan/auto-upnp
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/auto-upnp -config /etc/auto-upnp/config.yaml
ExecReload=/bin/kill -HUP \$MAINPID
Restart=always
RestartSec=10
StandardOutput=null
StandardError=null
SyslogIdentifier=auto-upnp
# 安全设置
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/etc/auto-upnp /var/log /var/lib/auto-upnp
[Install]
WantedBy=multi-user.target
EOF
2. 启动服务
bash
# 重新加载 systemd
sudo systemctl daemon-reload
# 启用服务
sudo systemctl enable auto-upnp
# 启动服务
sudo systemctl start auto-upnp
# 查看服务状态
sudo systemctl status auto-upnp
直接运行
bash
# 启动服务
sudo auto-upnp -config /etc/auto-upnp/config.yaml
# 后台运行
sudo nohup auto-upnp -config /etc/auto-upnp/config.yaml > /var/log/auto-upnp.log 2>&1 &
# 调试模式
sudo auto-upnp -config /etc/auto-upnp/config.yaml -log-level debug
验证安装
检查服务状态
bash
# 检查进程
ps aux | grep auto-upnp
# 检查日志
tail -f /var/log/auto-upnp.log
# 检查服务状态
sudo systemctl status auto-upnp
访问 Web 界面
管理地址的端口会使用 port_range 第一个端口, 如果第一个不能用会依次使用后面的端口 假设设置的 port_range 为 18000-19000 那么管理端端口为 18000
打开浏览器访问:http://your-server-ip:${port_range[0]}
如果一切正常,您应该能看到 Auto-UPnP 的管理界面。
配置说明
查看 配置说明 了解详细配置选项
服务管理
查看 基本使用 了解更多使用知识
故障排除
如果安装过程中遇到问题,请查看 故障排除 页面获取帮助。