Skip to content

DEPLOYMENT GUIDE · WINDOWS

UVP-GB28181 Windows 部署手册

把统一视频接入平台装到一台 Windows 服务器上:下载、校验、双击启动、放行防火墙、登录初始化,全程约 15 分钟。所有截图与终端输出来自 1.1.13 版本的真实部署过程。

版本说明:下文以 1.1.13 为例,实际版本号请以[下载页](/downloads/uvp-gb28181)当前发布的为准,把文件名里的 1.1.13 换成对应版本即可,步骤完全相同。

1. 环境要求 ​

「独立部署包」是绿色包:数据库(SQLite)、缓存(Redis)、流媒体服务(ZLMediaKit)、Web 服务器(nginx)全部随包自带,不需要预装 SQLite、Redis、Java、Docker 或任何运行时。

项目要求
系统Windows 10 / 11 或 Windows Server 2016 及以上,64 位
解压路径不能含中文和空格,例如 D:\uvp-gb28181
内存建议 4 GB 及以上
磁盘建议 10 GB 以上可用空间
运行身份普通用户即可运行;放行防火墙需要管理员 PowerShell
浏览器Chrome / Edge / Firefox 近两年版本

端口使用连续的 15500–15564 一段(Windows 版专用段,避开系统动态端口保留区),启动时会逐个实测,被占用会当场报错。

为什么不是 51000:51000 一带会落在 Windows 动态端口范围(默认 49152–65535)里,可能被系统保留后任何程序都绑不上,流媒体 UDP 端口和 SIP 信令会静默失败。Windows 包统一使用 15500 段。

2. 部署步骤总览 ​

  1. 在[下载页](/downloads/uvp-gb28181)下载 Windows amd64 独立部署包
  2. 用 PowerShell 核对 SHA-256 校验值
  3. 解压到不含中文、空格的英文路径
  4. 双击 start.cmd 启动全部服务(窗口不要关)
  5. 以管理员 PowerShell 放行防火墙(局域网访问才需要)
  6. 浏览器打开管理页面,用初始账号登录并立即修改口令
  7. 完成接入向导,记录 SIP 接入信息
  8. 按需开启 HTTPS

3. 第一步:下载安装包 ​

打开官网下载页,在「Windows 独立部署包」里下载 amd64 安装包(zip 格式,约 100 MB)。

官网下载页,Windows 独立部署包区域
官网下载页:每个安装包都标注了文件大小与 SHA-256 校验值

下载完成后核对校验值。在下载目录打开 PowerShell,执行:

PowerShell:Get-FileHash 校验安装包
Get-FileHash 输出的 Hash 应与下载页标注的 SHA-256 完全一致

把输出的 Hash 与下载页该安装包标注的 SHA-256 逐字符比对(不区分大小写),一致才算完整。

4. 第二步:解压到英文路径 ​

把 zip 解压到不含中文、不含空格的目录,例如 D:\uvp-gb28181。解压出来的目录就是「包根」,后面所有操作都在这个目录里进行:

PowerShell:Get-ChildItem 展示包根目录
包根目录:日常只需要关心 ctl 脚本、config、data 三个
目录 / 文件作用
start.cmd / stop.cmd / status.cmd双击即可执行的启动 / 停止 / 状态入口
uvp-gb28181-ctl.ps1真正的控制脚本(PowerShell),上述 cmd 都是它的壳
bin\平台程序本体:uvp-server.exe、uvp-setup.exe、升级助手
vendor\自带 Redis、ZLMediaKit、nginx,不用另装
config\全部配置:config.yml + config.env(端口段与密钥)
data\全部业务数据:数据库、Redis 落盘、进程互斥记录
logs\全部日志:业务、nginx、流媒体、Redis

记住两个目录:备份和迁移只需要 data\ 和 config\,其他目录都可以由安装包重新生成。

5. 第三步:启动服务 ​

进入包根,双击 start.cmd。首次启动约 1 分钟,自动完成三件事:建库(114 张表 + 初始数据 + 管理员账号)、安装包内自签证书、生成配置文件。结束后打印访问地址:

终端:start.cmd 首次启动完整输出
start.cmd 首次启动完整输出:环境检查 → 初始化数据 → 启动服务

输出分三个阶段,重点看这几行:

  • 阶段 1 · 环境检查:检查文件完整性、CPU 架构,并逐个实测 TCP 15501–15564 与 UDP 15511/15513/15514–15564 是否可绑定。SIP 端口 15564 由平台引导页录入,不在预检范围内。
  • 阶段 2 · 初始化数据:建 114 张表、灌入初始数据、创建管理员账号(admin),同步端口与证书配置。中间「有 9 条 CREATE 语句不会生效」是 SQLite 的库级唯一约束提示,属正常现象。
  • 阶段 3 · 启动服务:流媒体、管理页面、Redis、后端依次起来,并打印端口规划与防火墙命令。
  • 结尾:打印访问地址、登录账号,以及两条防火墙放行命令。

启动窗口不要关:服务挂在启动窗口里,关掉窗口等于停止平台。要让窗口关掉后服务继续运行,需要改用「任务计划程序」或「Windows 服务」方式托管,或保持窗口最小化。

6. 第四步:放行防火墙(局域网访问) ​

如果这台机器只给本机用,跳过这一步。要让局域网内的设备、其他电脑访问,需要以管理员身份打开 PowerShell,执行启动输出里打印的两条命令(按本机实际端口):

powershell
New-NetFirewallRule -DisplayName 'UVP'     -Direction Inbound -Action Allow -Protocol TCP -LocalPort 15501-15564
New-NetFirewallRule -DisplayName 'UVP-UDP' -Direction Inbound -Action Allow -Protocol UDP -LocalPort 15511,15513,15514-15564

云服务器还要在控制台的安全组里放行同样范围。

7. 第五步:登录并修改初始口令 ​

浏览器访问启动时打印的地址(形如 http://<本机IP>:15500),初始账号 admin、口令 123456:

UVP-GB28181 登录页面,右上角显示版本号 v1.1.13
Windows 上的登录页面:右上角可以看到版本号(图为 v1.1.13)

登录后系统会强制要求修改口令,改完自动进入接入向导。Windows 与 Linux 的 Web 界面完全一致,后续步骤(向导、SIP 接入信息、设备接入地址、HTTPS)与 Linux 手册描述相同,可直接参照对应截图:

同样要检查「设备接入地址」:进入「国标服务配置」页面底部,确认「扫码配网地址」和「抓拍回传地址」指向的是这台机器的当前地址。地址不对时扫码配网和图片回传会静默失败,平台侧没有任何报错。

8. 日常运维 ​

在包根目录双击对应的 cmd,或用 PowerShell 执行:

操作命令
启动双击 start.cmd
停止双击 stop.cmd
查看状态双击 status.cmd
重启.\uvp-gb28181-ctl.ps1 restart
重置登录口令双击 reset-password.cmd
终端:status.cmd 输出,四项组件全部运行中
status.cmd 输出:后端、Redis、流媒体、管理页面四项状态

备份

停服(`stop.cmd`)后只拷贝 data\ 和 config\ 两个目录即可,换机器时连同这两个目录一起带走。

升级

解压新版本安装包覆盖原目录,保留 data\、config\,再 `stop.cmd` → `start.cmd`。升级日志见[版本记录](/changelog/uvp-gb28181)。

9. 常见问题 ​

双击 cmd 一闪而过

说明脚本内部报错了。在包根目录的地址栏输入 `powershell` 回车,手工执行 `powershell -NoProfile -ExecutionPolicy Bypass -File .\uvp-gb28181-ctl.ps1 start`,就能看到完整报错。

提示端口被 Windows 系统保留

这不是被别的软件占用,而是端口落在系统动态端口范围里,绑定会直接返回「拒绝访问」。用 `netsh int ipv4 show excludedportrange protocol=udp`(`tcp` 同理)确认,然后把 `config\config.env` 的端口段整体挪到保留区之外再启动。

流媒体显示未运行,但启动时明明打了「已启动」

ZLMediaKit 先绑 TCP、再绑 UDP,UDP 那一步失败后进程会立刻退出。启动脚本会在启动后复查进程与端口,发现问题当场报错,按提示改端口即可。

页面打不开

先执行 `status.cmd`,看四项是否都「运行中」。都正常却打不开,确认用的是 `http://` + `15500`(开过 HTTPS 才是 `https://` + `15501`),写成后端端口 `15502` 也不对。只有「管理页面」没起来时看 `logs\nginx-error.log`。

忘记登录口令

双击 `reset-password.cmd`(等同 `.\uvp-gb28181-ctl.ps1 reset-password`),把 admin 口令还原成出厂口令并要求下次登录修改,不碰任何业务数据。

10. 继续阅读 ​