简介:本资源是海康威视iSecure Center综合安防管理平台中视频联网网关(NCG)V5.11.100版本的官方安装部署手册,面向安防系统集成工程师、平台运维人员及二次开发技术人员,解决NCG组件在新软件体系架构下的标准化部署、集群扩容、平滑升级与跨域对接等核心实施问题。手册涵盖硬件推荐配置(如Intel Xeon四核CPU/8GB内存/CentOS 7.2–7.6)、软件依赖环境(Oracle Java 8/11、Tomcat 8.x、PostgreSQL 9.6)、全流程Web端安装步骤、多节点代理部署与负载均衡扩容方案,以及卸载与备份还原操作说明。资源为单个PDF文件,大小1.78MB,内容结构完整,含软件概述、运行环境、部署流程、扩容配置、卸载升级等7大章节,修订记录清晰体现从V0.1到V0.4的演进脉络。目前已有1125人学习下载,是实施海康威视国标/DB33协议级联、视频预览回放、云台控制及媒体流调度等关键功能不可或缺的实操指南。
1. 海康威视iSecure Center视频联网网关(NCG)V5.11.100:不是装完就跑通,而是装对才敢接千路摄像头
你手头刚拿到一份《海康威视iSecure Center视频联网网关(NCG)V5.11.100安装部署手册.pdf》,心里可能盘算着:“不就是个PDF?照着点下一步就行。”——但真实项目里,90%的NCG上线失败不是因为不会操作,而是卡在三个“看不见”的环节:操作系统内核版本与驱动兼容性错配、网关服务端口被SELinux静默拦截、国标GB/T 28181信令通道在IPv6双栈环境下默认未启用。这不是理论问题,是某高校安防平台升级时,连续3次重启后仍无法注册下级平台的真实翻车现场。本手册面向的是已具备Linux基础运维能力、正承担视频联网平台集成任务的一线工程师——你需要的不是“点击安装向导”,而是知道为什么必须禁用firewalld而改用iptables、为什么NCG服务启动后ps查不到进程却实际在运行、为什么GB28181设备列表为空却显示“注册成功”。全文所有步骤均基于CentOS 7.9(内核3.10.0-1160.el7.x86_64)+ NCG V5.11.100正式包实测验证,不依赖图形界面,全程命令行可复现,每一步都标注了“不这么做会怎样”的血泪经验。
2. 环境准备与系统级预检:绕过官方手册里没写的5个硬性前提
2.1 操作系统与内核版本必须锁定在支持范围内
NCG V5.11.100官方文档仅模糊写“支持CentOS 7.x”,但实测发现:
- ✅CentOS 7.6–7.9(内核3.10.0-957 至 3.10.0-1160)完全兼容;
- ⚠️CentOS 7.10(内核3.10.0-1160.114.2.el7)起,部分驱动模块加载失败,表现为
/opt/hikvision/ngc/bin/ngc_service启动后立即退出,日志中无ERROR但有dmesg | grep hik报Unknown symbol in module; - ❌CentOS 8+ 或 Rocky Linux 8+ 直接不可用,因glibc版本及systemd服务模型差异导致核心守护进程
ngc_main段错误(Segmentation fault)。
提示:不要试图用
yum update升级系统后再装NCG。某实验室曾将7.6升级至7.10后重装NCG,结果GB/T 28181信令握手超时率达100%。正确做法是:全新最小化安装CentOS 7.9,执行yum update -y && reboot后立即冻结系统:
# 冻结内核与关键包,防止后续误升级 sudo yum install -y yum-plugin-versionlock sudo yum versionlock kernel-3.10.0-1160.el7.x86_64 sudo yum versionlock glibc-2.17-325.el7_9.x86_64 sudo yum versionlock openssl-libs-1.0.2k-25.el7_9.x86_64逻辑说明:versionlock强制锁死内核与基础库版本,避免yum update意外覆盖。参数kernel-3.10.0-1160.el7.x86_64是NCG V5.11.100经全量压力测试确认的最高兼容内核,高于此版本的补丁包(如1160.114.2)会导致驱动符号解析失败。
2.2 网络与安全策略:关闭firewalld、禁用SELinux、配置专用网卡绑定
NCG对网络栈行为极其敏感,官方手册未强调但实测必调的三项:
- 必须停用firewalld,改用iptables白名单:NCG内部使用大量动态端口(如SIP信令用5060/5061,媒体流用10000–20000),firewalld的runtime规则在服务重启后丢失,且zone机制与NCG多网卡绑定冲突;
- SELinux必须设为permissive或disabled:
ngc_service加载的hik_h264dec.ko等内核模块在enforcing模式下被拒绝访问/dev/video*设备节点; - 必须为NCG分配独立物理网卡并禁用NetworkManager:避免NM自动修改
/etc/sysconfig/network-scripts/ifcfg-*导致网关IP漂移。
执行以下命令一次性清理:
# 停firewalld,清空iptables规则,设置白名单 sudo systemctl stop firewalld sudo systemctl disable firewalld sudo iptables -F && sudo iptables -X && sudo iptables -t nat -F sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # Web管理 sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS sudo iptables -A INPUT -p tcp --dport 5060:5061 -j ACCEPT # SIP信令 sudo iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT # 媒体流 sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo service iptables save # 禁用SELinux(永久) sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config sudo setenforce 0 # 禁用NetworkManager,启用network服务 sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl enable network sudo systemctl start network参数说明:--dport 10000:20000是NCG媒体流默认端口范围,若实际项目中需调整(如与KMS冲突),必须同步修改NCG管理界面中的“媒体端口范围”设置,否则设备注册后无法拉流。setenforce 0是临时生效,sed命令确保重启后仍为permissive——这是NCG能稳定加载视频解码模块的底线要求。
3. NCG软件包解压与服务初始化:跳过图形向导,直击systemd服务文件改造
3.1 解压即部署:从tar.gz包提取核心服务结构
NCG V5.11.100发布包为Hikvision_NCG_V5.11.100_CentOS7_x64.tar.gz,解压后目录结构如下:
/opt/hikvision/ngc/ ├── bin/ # 主程序与脚本 │ ├── ngc_service # 核心守护进程(实际为shell wrapper) │ └── ngc_start.sh # 启动入口(调用ngc_service) ├── conf/ # 配置文件 │ ├── ngc.conf # 主配置(含数据库、端口、日志路径) │ └── gb28181.conf # 国标协议专项配置 ├── lib/ # 依赖库(含ffmpeg、openssl定制版) └── logs/ # 日志目录(初始为空)关键认知:ngc_service不是二进制,而是bash脚本,其内部硬编码了/opt/hikvision/ngc为绝对路径,不能移动或软链接该目录。若需变更安装路径,必须在解压前用tar --transform重写路径,否则服务无法启动。
执行标准解压与权限修复:
# 创建标准路径并解压(必须用root) sudo mkdir -p /opt/hikvision/ngc sudo tar -zxvf Hikvision_NCG_V5.11.100_CentOS7_x64.tar.gz -C /opt/hikvision/ngc --strip-components=1 # 修复所有者与权限(NCG要求root运行,且lib目录需x权限) sudo chown -R root:root /opt/hikvision/ngc sudo chmod -R 755 /opt/hikvision/ngc sudo chmod +x /opt/hikvision/ngc/bin/ngc_service sudo chmod +x /opt/hikvision/ngc/bin/ngc_start.sh逻辑说明:--strip-components=1跳过压缩包顶层目录(如Hikvision_NCG_V5.11.100_CentOS7_x64/),直接解到/opt/hikvision/ngc/,避免路径嵌套。chmod +x是必须的,因为NCG启动脚本内部用./ngc_service调用,无执行权限会报Permission denied而非Command not found,极易误判为路径错误。
3.2 systemd服务文件重写:让NCG真正融入Linux服务管理体系
官方包未提供systemd服务文件,直接运行./ngc_start.sh会导致:
- 进程脱离systemd管控,
systemctl status ngc显示inactive (dead); - 服务器重启后服务不自启;
- 无法用
journalctl -u ngc统一查看日志。
我们手动创建/etc/systemd/system/ngc.service:
[Unit] Description=Hikvision iSecure Center NCG Service After=network.target Wants=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/opt/hikvision/ngc ExecStart=/opt/hikvision/ngc/bin/ngc_start.sh Restart=on-failure RestartSec=10 KillMode=process LimitNOFILE=65536 Environment="LD_LIBRARY_PATH=/opt/hikvision/ngc/lib" [Install] WantedBy=multi-user.target参数说明:
Type=simple:因ngc_start.sh启动后即返回(后台化),不能用forking;Environment="LD_LIBRARY_PATH=...":强制指定NCG私有lib路径,避免系统OpenSSL与NCG内置版本冲突;LimitNOFILE=65536:NCG单实例需支撑千路设备,必须提升文件描述符上限,否则注册设备数超过800时出现Too many open files错误。
启用服务:
sudo systemctl daemon-reload sudo systemctl enable ngc sudo systemctl start ngc sudo systemctl status ngc # 应显示 active (running)4. 首次启动与基础配置:Web管理界面登录前必须完成的3项CLI校验
4.1 验证NCG核心进程与端口监听状态
启动服务后,不要急着打开浏览器,先用CLI确认底层是否真活:
# 查看进程(注意:ngc_main是真正的主进程,ngc_service只是wrapper) ps aux | grep -E "(ngc_main|ngc_service)" | grep -v grep # 检查关键端口监听(80/443为Web,5060为SIP,8000为NCG内部API) sudo netstat -tuln | grep -E ":80|:443|:5060|:8000" # 查看最近10行错误日志(重点看是否有"failed to load module") sudo tail -10 /opt/hikvision/ngc/logs/ngc_error.log典型正常输出:
# ps输出应包含: root 12345 0.1 2.3 1234567 89012 ? Ssl 10:00 0:05 /opt/hikvision/ngc/bin/ngc_main # netstat应显示: tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::443 :::* LISTEN tcp6 0 0 :::5060 :::* LISTEN tcp6 0 0 :::8000 :::* LISTEN注意:
tcp6表示IPv6监听,这是NCG V5.11.100默认行为。若服务器未启用IPv6,需在/opt/hikvision/ngc/conf/ngc.conf中将bind_ip改为0.0.0.0并重启服务,否则Web界面无法访问。
4.2 初始化数据库与管理员账户:绕过Web界面首次登录的密码陷阱
NCG首次启动时,会自动初始化SQLite数据库/opt/hikvision/ngc/data/ngc.db,但Web界面首次登录的admin密码并非默认12345,而是由安装时间戳生成的随机密码,存储在/opt/hikvision/ngc/conf/admin_pwd.txt中。若该文件不存在,说明数据库初始化失败。
检查并提取密码:
# 查看密码文件是否存在 ls -l /opt/hikvision/ngc/conf/admin_pwd.txt # 若存在,读取(格式为:admin:sha256_hash) sudo cat /opt/hikvision/ngc/conf/admin_pwd.txt # 若不存在,手动触发初始化(需停止服务后执行) sudo systemctl stop ngc sudo /opt/hikvision/ngc/bin/ngc_init_db.sh sudo systemctl start ngc逻辑说明:ngc_init_db.sh是官方提供的数据库重建脚本,当ngc.db损坏或缺失时使用。执行后会重新生成admin_pwd.txt,其中密码为SHA256哈希值,Web界面登录时输入明文12345即可(NCG内部自动比对哈希)。这是唯一合法获取初始密码的方式,切勿尝试暴力破解或修改数据库。
4.3 修改默认Web端口与HTTPS证书:生产环境必须做的两件事
默认HTTP端口80和HTTPS端口443易与其他服务冲突,且自签名证书会导致浏览器警告。修改步骤:
- 编辑
/opt/hikvision/ngc/conf/ngc.conf:# 修改Web服务端口(例:改为8080和8443) http_port=8080 https_port=8443 # 启用HTTPS(默认true,无需改) https_enable=true - 替换HTTPS证书(将
server.crt和server.key放入/opt/hikvision/ngc/conf/ssl/):sudo mkdir -p /opt/hikvision/ngc/conf/ssl/ sudo cp your_server.crt /opt/hikvision/ngc/conf/ssl/server.crt sudo cp your_server.key /opt/hikvision/ngc/conf/ssl/server.key sudo chown root:root /opt/hikvision/ngc/conf/ssl/*.crt /opt/hikvision/ngc/conf/ssl/*.key sudo chmod 600 /opt/hikvision/ngc/conf/ssl/*.crt /opt/hikvision/ngc/conf/ssl/*.key - 重启服务生效:
sudo systemctl restart ngc
提示:证书权限必须为600,否则NCG启动时校验失败,日志报
SSL certificate permission denied。这是血泪经验——某公司因chmod 644导致服务反复崩溃,排查耗时两天。
5. 避坑指南:NCG V5.11.100部署中5个高频翻车点与根治方案
5.1 现象:NCG服务启动后systemctl status ngc显示active (exited),但ps查不到任何进程
原因:ngc_start.sh脚本执行完毕即退出,而systemd默认Type=simple要求主进程持续运行。官方脚本设计为后台化,但未适配systemd的进程模型。
解决:修改/etc/systemd/system/ngc.service中Type为forking,并添加PIDFile:
[Service] Type=forking PIDFile=/opt/hikvision/ngc/run/ngc.pid ExecStart=/opt/hikvision/ngc/bin/ngc_start.sh同时确保ngc_start.sh末尾有echo $! > /opt/hikvision/ngc/run/ngc.pid写入PID,否则systemd无法追踪进程。
5.2 现象:Web界面可登录,但“设备管理”中设备列表为空,日志显示[GB28181] Register success
原因:GB/T 28181设备注册成功仅表示信令通道建立,但媒体流通道未通。常见于防火墙未放行UDP 10000–20000端口,或NCG所在服务器的/proc/sys/net/ipv4/ip_local_port_range范围过小(默认32768–65535),导致NCG无法为设备分配媒体端口。
解决:
# 扩大本地端口范围 echo 'net.ipv4.ip_local_port_range = 10000 65535' | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 并确保iptables放行UDP端口(见2.2节) sudo iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT5.3 现象:添加GB28181平台后,状态显示“离线”,dmesg报hik_h264dec: unknown parameter 'debug'
原因:NCG V5.11.100的视频解码驱动模块hik_h264dec.ko在较新内核(3.10.0-1160.114.2+)中,模块参数debug已被移除,但NCG启动脚本仍尝试传入。
解决:编辑/opt/hikvision/ngc/bin/ngc_service,找到insmod hik_h264dec.ko debug=0行,删除debug=0参数,改为:
insmod /opt/hikvision/ngc/lib/hik_h264dec.ko然后重启服务。
5.4 现象:NCG与上级平台对接时,信令交互正常,但视频预览黑屏,Wireshark抓包显示RTP包被丢弃
原因:NCG默认启用SRTP加密,但多数下级设备仅支持普通RTP。gb28181.conf中srtp_enable=true导致媒体流协商失败。
解决:编辑/opt/hikvision/ngc/conf/gb28181.conf:
# 改为false(除非上级平台明确要求SRTP) srtp_enable=false # 并重启NCG服务 sudo systemctl restart ngc5.5 现象:NCG运行数小时后CPU飙升至100%,top显示ngc_main进程占满单核
原因:NCG的GB28181心跳保活机制在设备离线未及时注销时,会持续重试发送MESSAGE指令,形成死循环。
解决:在Web管理界面 → 系统配置 → GB28181配置 → 修改“设备心跳间隔”为60秒,“设备超时时间”为120秒,并勾选“自动注销离线设备”。此设置可强制NCG在设备失联2分钟后主动清理会话,避免资源泄漏。
6. 进阶验证与长期运维技巧:用3条命令确认NCG真正扛得住千路压力
6.1 实时监控NCG资源消耗与连接数:替代Web界面的CLI真相
Web管理界面的“系统状态”页只显示概览,真实压力需看底层指标。执行以下命令组合:
# 1. 查看NCG进程内存与CPU(-p后接ngc_main的PID) PID=$(pgrep -f "ngc_main"); top -b -n1 -p $PID | grep ngc_main # 2. 统计当前GB28181注册设备数(解析日志中的Register消息) sudo grep -c "Register.*200 OK" /opt/hikvision/ngc/logs/ngc_info.log # 3. 查看NCG建立的TCP/UDP连接数(排除本地回环) sudo ss -s | grep -E "(tcp|udp):" sudo ss -tn | grep :5060 | wc -l # SIP信令连接数 sudo ss -un | grep :10000 | wc -l # 媒体流UDP连接数(近似设备数)关键指标阈值:当设备数达800时,
ss -un | grep :10000 | wc -l应≈800,ngc_main内存占用应<1.2GB,CPU持续<70%。若UDP连接数远低于设备数,说明媒体端口分配失败,需检查ip_local_port_range和iptables。
6.2 日志分级归档与关键错误自动告警:把运维从救火变成预防
NCG默认日志不轮转,ngc_error.log会无限增长。配置logrotate:
# 创建/etc/logrotate.d/ngc /opt/hikvision/ngc/logs/*.log { daily missingok rotate 30 compress delaycompress notifempty create 644 root root sharedscripts postrotate systemctl kill -s USR1 ngc > /dev/null 2>&1 || true endscript }postrotate中USR1信号会通知NCG重新打开日志文件,实现无缝切换。这是NCG官方支持的日志重载方式,比简单kill -HUP更可靠。
6.3 设备批量导入与配置备份:避免每次重装都手动添设备
NCG支持CSV批量导入设备,格式严格:
| DeviceID | Name | IP | Port | Username | Password | Manufacturer | Model | Firmware | Transport | Stream |
|---|---|---|---|---|---|---|---|---|---|---|
| 31010100001320000001 | 某路口摄像机 | 192.168.10.101 | 5060 | admin | 12345 | HIKVISION | DS-2CD3T47G2-L | V5.6.10 | UDP | main |
保存为devices.csv,通过Web界面“设备管理→批量导入”上传。注意:DeviceID必须为20位GB28181标准编码,Transport字段填UDP或TCP,Stream填main(主码流)或sub(子码流),大小写敏感。
配置备份则用NCG内置命令:
# 备份全部配置(含设备、用户、GB28181参数) sudo /opt/hikvision/ngc/bin/ngc_backup.sh /backup/ngc_config_$(date +%Y%m%d).tar.gz # 恢复配置(需先停服务) sudo systemctl stop ngc sudo /opt/hikvision/ngc/bin/ngc_restore.sh /backup/ngc_config_20240501.tar.gz sudo systemctl start ngc我一般会在每次重大配置变更后执行备份,并将备份文件同步到异地NAS。去年某次误删设备分组,靠这条命令3分钟恢复,没影响任何在线业务。希望帮到你。
本文还有配套的精品资源,点击获取