ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

海康威视平台部署实战:静态IP与SSH配置全流程指南

海康威视平台部署实战:静态IP与SSH配置全流程指南 1. 从一台裸机到平台可用海康威视部署到底在部署什么很多人第一次接触“海康威视平台部署”这个说法时脑子里浮现的画面是打开一个安装包、一路点“下一步”、重启、完事。真到现场才发现完全不是这么回事。海康威视的平台类产品不管是综合安防管理平台、iVMS 系列还是行业级的 BCM 业务连续性管理模块本质上是一套跑在服务器上的软件系统它需要操作系统、数据库、中间件、网络配置、授权文件、设备接入协议这一整套东西全部到位才能对外提供服务。所以“部署流程”这四个字背后其实是一条从硬件上架到业务可用的完整链路。我先把这条链路的大致轮廓摆出来让你心里有个谱。典型的海康平台部署会涉及这么几个阶段服务器与操作系统准备、网络与静态 IP 规划、SSH 远程运维通道打通、平台软件安装与依赖配置、数据库初始化、授权与加密狗处理、设备接入与协议对接、最后是功能验证。这里面任何一个环节出问题后面都会卡住。尤其是网络和 SSH 这两块看起来是最基础的但恰恰是现场翻车最多的地方。为什么我要强调 SSH 和静态 IP 这两个关键词因为海康的平台服务器绝大多数是 Linux 环境CentOS、Rocky Linux、麒麟等国产化系统都很常见你不可能抱着显示器和键盘蹲在机房操作必须通过 SSH 远程连上去干活。而服务器 IP 如果是 DHCP 动态分配的重启一次地址就变了平台里配置的设备回调地址、级联地址全部失效整个系统直接瘫。所以静态 IP 是部署前必须敲定的第一件事SSH 是你后续所有操作的命脉通道。这篇文章适合谁看如果你是刚入行的安防集成工程师第一次独立负责平台部署那这篇能帮你少走至少两天的弯路如果你是运维人员接手了别人部署一半的平台需要排查问题这里面的排查思路同样适用就算你只是想在虚拟机里搭一套环境做测试学习我也会把 VMware 里配 Ubuntu 静态 IP、开 SSH 这些细节讲清楚。下面我按实际动手的顺序一块一块拆开讲。2. 部署前的网络规划静态 IP 为什么是绕不过去的坎2.1 动态 IP 带来的连锁反应我先讲一个真实的场景。之前有个项目同事图省事服务器装好系统后没改网络配置直接用了路由器分配的动态地址。当天测试一切正常平台能登录、摄像头能预览。结果第二天早上客户打电话说整个平台打不开了。远程连上去一看服务器 IP 从 192.168.1.105 变成了 192.168.1.112而平台配置文件里写的还是旧地址设备注册、级联、Web 访问全部指向了一个不存在的 IP。这个问题的根源在于海康平台内部有大量硬编码或配置文件里写死的 IP 地址。比如设备的注册服务器地址、平台的对外服务地址、数据库连接地址、级联上级平台地址等等。这些地址一旦和实际 IP 不一致服务就起不来或者设备连不上。所以部署前第一件事就是规划并固定服务器的静态 IP。2.2 静态 IP 规划要考虑的几个维度规划静态 IP 不是随便填一个数字就完事你得考虑这几件事网段归属服务器 IP 要和摄像头、门禁、录像机在同一个可路由的网段或者有明确的路由策略。跨网段部署时要确认网关和路由是否放通。地址冲突选定的 IP 必须在 DHCP 地址池之外或者干脆在路由器/交换机上做 IP-MAC 绑定避免被其他设备抢占。多网卡场景海康平台服务器经常是双网卡一张接内网设备一张接外网或上级平台。这时候两张网卡都要配静态 IP而且要规划好路由优先级别让默认路由走错了口。DNS 配置即使是内网部署也建议配上可用的 DNS否则某些依赖域名解析的服务启动会变慢甚至超时。2.3 在 Ubuntu 里配置静态 IP 的实操现在很多测试环境用 Ubuntu我用 Ubuntu 22.04 举例因为它的网络配置和老的 16.04 差别很大很多人在这里踩坑。Ubuntu 从 17.10 开始用Netplan管理网络配置文件在/etc/netplan/目录下通常是00-installer-config.yaml或类似名字。先看一下当前配置ls /etc/netplan/ cat /etc/netplan/00-installer-config.yaml你会看到类似这样的内容network: ethernets: ens33: dhcp4: true version: 2改成静态 IP编辑成这样network: ethernets: ens33: dhcp4: false addresses: - 192.168.1.200/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 114.114.114.114 - 8.8.8.8 version: 2这里有几个细节必须注意。网卡名字 ens33 要换成你自己的用ip addr命令确认。缩进必须用空格不能用 TabYAML 对缩进极其敏感一个 Tab 就能让配置解析失败。改完之后执行sudo netplan apply如果报错用sudo netplan try可以先测试再确认它会在 120 秒后自动回滚防止你把自己关在门外。这个技巧在远程操作时特别有用我强烈建议养成习惯。2.4 Rocky Linux 和麒麟系统的静态 IP 配置差异国产化项目里 Rocky Linux 和麒麟系统出现频率很高。Rocky Linux 用的是 NetworkManager配置方式和 Ubuntu 完全不同。你可以用nmcli命令行工具来配nmcli con mod ens33 ipv4.addresses 192.168.1.200/24 nmcli con mod ens33 ipv4.gateway 192.168.1.1 nmcli con mod ens33 ipv4.dns 114.114.114.114 nmcli con mod ens33 ipv4.method manual nmcli con up ens33麒麟系统的网络配置界面是图形化的但底层同样是 NetworkManager所以nmcli命令一样管用。如果你在麒麟的图形界面里配注意保存后要断开再重连网络连接才会生效光点保存有时候不生效这是很多人反馈过的坑。提示配置静态 IP 之前先用ip addr和ip route把当前的网络信息记下来包括网卡名、当前 IP、网关、子网掩码。改错了还能照着改回去。3. SSH 通道远程运维的生命线怎么打通3.1 为什么 SSH 是部署工作的核心工具服务器装好系统、配好静态 IP 之后你不可能每次都跑到机房去操作。SSH 就是你的远程操作通道。海康平台的部署过程中你要上传安装包、解压、改配置文件、启动服务、看日志这些全部通过 SSH 完成。所以SSH 必须在部署初期就打通并测试稳定。SSH 的基本原理不复杂客户端通过加密通道连接到服务器的 22 端口验证身份后获得一个远程 Shell。但实际用起来问题往往出在几个地方服务没启动、防火墙挡了端口、认证方式不对、权限配置有问题。3.2 服务端 SSH 的安装与启动先确认服务器上 SSH 服务是否已经安装并运行。在 Ubuntu 上sudo apt update sudo apt install openssh-server sudo systemctl status ssh在 Rocky Linux 或 CentOS 上sudo dnf install openssh-server sudo systemctl enable sshd sudo systemctl start sshd启动之后确认 22 端口在监听ss -tlnp | grep 22如果看到LISTEN状态就说明服务起来了。接下来检查防火墙。Ubuntu 默认用 ufwRocky 用 firewalld# Ubuntu sudo ufw allow 22/tcp sudo ufw status # Rocky Linux sudo firewall-cmd --permanent --add-servicessh sudo firewall-cmd --reload这一步经常被忽略。很多人装好了 SSH 服务但防火墙没放行从外面连死活连不上然后开始怀疑人生。先查防火墙再查服务最后查网络这个排查顺序能帮你省大量时间。3.3 SSH 免密登录的配置与权限坑部署过程中你会频繁登录服务器每次输密码很烦而且后续做自动化脚本传输文件时免密登录几乎是必须的。配置方法是在本地生成密钥对把公钥传到服务器ssh-keygen -t rsa -b 4096 ssh-copy-id user192.168.1.200但这里有一个非常经典的坑就是.ssh目录和文件的权限问题。SSH 对权限要求极其严格如果权限不对它会直接拒绝使用密钥认证而且报错信息往往很含糊。正确的权限是chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub我遇到过 Windows 上用 Git Bash 生成的密钥传到 Linux 后死活认证失败的情况最后发现是authorized_keys的权限变成了 777。SSH 认为这个文件被其他人可写存在安全风险直接忽略。所以权限问题永远是 SSH 密钥认证失败的第一排查项。3.4 常用 SSH 客户端工具的选择Windows 上常用的 SSH 客户端有 PuTTY、Xshell、MobaXterm、Bitvise 等。MobaXterm 自带 SFTP 文件传输面板传安装包很方便我个人在部署海康平台时用得最多。Mac 上直接用终端自带的ssh命令就够了配合scp传文件。VS Code 的 Remote-SSH 插件也值得推荐它能让你像编辑本地文件一样编辑服务器上的配置文件改海康平台的那些 XML 和 properties 文件时效率高很多。配置方法是在 VS Code 里按 F1输入Remote-SSH: Connect to Host然后填user192.168.1.200就行。第一次连接会提示你选平台类型选 Linux 即可。注意如果你在 VS Code 里连不上但命令行 ssh 能连上大概率是 VS Code 的 SSH 配置文件路径有问题。检查~/.ssh/config文件Windows 下路径是C:\Users\你的用户名\.ssh\config。如果这个文件权限不对也会报bad owner or permissions错误解决办法是右键文件属性把继承权限去掉只保留当前用户。4. 平台软件安装依赖、数据库与授权文件的处理4.1 安装包结构与依赖检查海康平台的安装包通常是一个压缩包或者 ISO 镜像里面包含安装脚本、服务程序、Web 前端、数据库脚本等。拿到安装包后先别急着运行安装脚本先读一遍里面的 README 或安装说明文档。海康的安装包里一般会有一个install.sh或者setup.sh以及一个说明文档列出依赖要求。常见的依赖包括JDK很多平台组件是 Java 写的、Tomcat 或内置的 Web 容器、MySQL 或 PostgreSQL 数据库、以及一些系统库如libssl、libcurl等。在 Rocky Linux 上你可能需要先装这些sudo dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel sudo dnf install -y libaio numactlJDK 版本一定要按文档要求来。我见过用 JDK 11 去跑只支持 JDK 8 的平台组件结果启动时报一堆UnsupportedClassVersionError排查半天才发现是版本不匹配。版本这东西文档写什么就用什么别自作主张升级。4.2 数据库初始化与连接配置海康平台的数据存储一般用 MySQL 或 PostgreSQL。安装数据库之后需要创建平台专用的数据库和用户然后导入初始化 SQL 脚本。以 MySQL 为例CREATE DATABASE hikvision_platform DEFAULT CHARACTER SET utf8mb4; CREATE USER hikuserlocalhost IDENTIFIED BY YourStrongPassword; GRANT ALL PRIVILEGES ON hikvision_platform.* TO hikuserlocalhost; FLUSH PRIVILEGES;然后导入脚本mysql -u hikuser -p hikvision_platform init.sql这里有个细节字符集必须是 utf8mb4不能用 utf8。因为 utf8 在 MySQL 里是残缺的存不了某些特殊字符设备名称里如果有生僻字就会乱码甚至报错。这个问题在项目验收时经常被忽略等到客户录入设备名称才发现返工很麻烦。数据库连接配置一般在平台的application.properties或config.xml里把地址、端口、库名、用户名、密码填对。如果数据库和平台不在同一台机器上还要确认数据库的远程访问权限和防火墙规则。4.3 授权文件与加密狗的部署海康的平台通常需要授权才能正常运行授权形式可能是 License 文件或者硬件加密狗。License 文件一般和服务器硬件信息绑定比如 MAC 地址、CPU 序列号等。所以换服务器或者改网卡会导致授权失效这一点在规划阶段就要考虑清楚。如果是加密狗需要安装对应的驱动。海康会提供 Linux 下的驱动包安装后插上加密狗用配套工具检查是否识别lsusb | grep -i key能看到设备就说明驱动装好了。然后在平台配置里指定加密狗的位置。如果平台启动时报授权相关错误优先检查加密狗是否插紧、驱动是否加载、授权是否过期。5. 设备接入与协议对接让摄像头真正连上平台5.1 设备注册的基本流程平台装好之后下一步是让摄像头、门禁、录像机这些设备注册上来。海康设备接入平台主要有两种方式一种是设备主动注册到平台另一种是平台主动去添加设备。主动注册适合设备数量多、网络环境复杂的场景平台只需要告诉设备一个注册地址设备自己连上来。配置设备主动注册需要在设备的 Web 管理界面里找到“平台接入”或“注册中心”设置填入平台的 IP、端口和注册密码。平台侧则要开启对应的注册服务并配置好设备接入的端口范围。5.2 RTSP 取流地址的拼接规则调试阶段经常需要直接用 RTSP 地址拉流验证摄像头是否正常。海康摄像头的 RTSP 地址有固定格式rtsp://用户名:密码IP:554/Streaming/Channels/101其中101表示通道 1 的主码流102表示通道 1 的子码流。如果是多通道的录像机201就是通道 2 的主码流以此类推。用 VLC 或者 ffplay 测试ffplay -rtsp_transport tcp rtsp://admin:password192.168.1.64:554/Streaming/Channels/101加-rtsp_transport tcp是为了强制走 TCPUDP 在某些网络环境下丢包严重画面会花屏。这个参数在排查取流问题时非常有用。5.3 GB28181 接入的注意事项如果平台支持 GB28181 协议设备可以通过国标协议接入。这需要配置 SIP 服务器信息包括 SIP 服务器 ID、域、地址、端口、设备 ID、注册密码等。GB28181 的配置项比较多任何一个填错都会导致注册失败。常见的坑是SIP 服务器 ID 和设备 ID 的编码规则。国标要求 ID 是 20 位数字前 8 位是行政区划代码中间 4 位是行业编码后面是设备类型和序号。如果 ID 位数不对或者编码不规范平台会拒绝注册。调试时可以在平台侧看 SIP 信令日志能看到设备发过来的注册请求和平台的响应根据响应码判断问题所在。6. 部署后的验证与常见故障排查6.1 分层验证的思路平台部署完不要上来就点各种功能按钮容易乱。按层次验证更清晰验证层次检查内容验证方法网络层服务器与设备互通ping、telnet 端口服务层平台各服务进程正常systemctl status、ps数据库层数据库连接正常平台日志、手动连接应用层Web 登录、功能可用浏览器访问、实际操作设备层设备在线、取流正常平台设备列表、RTSP 测试从下往上逐层排查哪一层出问题就聚焦哪一层不要跳层。6.2 几个高频故障的处理Web 页面打不开先确认平台 Web 服务进程是否在跑再确认端口是否监听最后查防火墙。海康平台 Web 常用 80、443、8080 等端口具体看部署配置。设备注册不上检查设备侧填的平台地址和端口是否正确、网络是否可达、注册密码是否一致。在平台侧看注册日志通常会有明确的失败原因。浏览器加载不了插件海康的 Web 客户端有些功能依赖浏览器插件而且对浏览器版本有要求。安装插件时必须关闭浏览器装完再打开。如果用的是较新的 Chrome 或 Edge可能需要在 IE 模式或者兼容模式下运行这是海康 Web 端的老问题暂时没有特别优雅的解决办法。SSH 突然连不上先 ping 服务器 IP通的话再 telnet 22 端口。端口不通就检查 SSH 服务和防火墙。如果之前能连突然连不上想想是不是改了网络配置或者防火墙规则有没有可能是 IP 冲突。6.3 日志是最好的老师海康平台各个组件都会输出日志位置一般在安装目录的logs文件夹下。遇到问题先看日志比瞎猜高效得多。重点看error和exception关键字时间戳对得上你操作的时间基本就能定位到问题。日志文件可能会很大用tail -f实时看或者用grep过滤关键字tail -f /opt/hikvision/logs/platform.log grep -i error /opt/hikvision/logs/platform.log | tail -507. 我在实际部署中攒下的几条经验部署海康平台这件事做多了会发现技术本身不复杂复杂的是环境和细节。我分享几条自己踩坑攒下来的经验都是文档里不会写的。第一条部署前画一张网络拓扑图。把服务器、摄像头、交换机、路由器、上级平台的 IP 和端口都标上去。这张图在排查问题时价值巨大能帮你快速判断两台设备之间是否可达、走哪条链路。我现在的习惯是部署前必画图哪怕只是草稿。第二条所有配置改动都记下来。改了哪个文件、改了什么内容、为什么改记在一个文档里。海康平台的配置文件很多改到后面自己都忘了改过什么。出问题时能回溯这是专业和业余的区别。第三条虚拟机测试环境很有必要。正式部署前在 VMware 里装一套 Ubuntu 或者麒麟把整个流程走一遍。虚拟机里配静态 IP、开 SSH、装平台、接一个测试摄像头全部跑通再去现场。这样现场遇到问题你心里有底知道正常流程是什么样。VMware 里配静态 IP 和物理机没区别注意虚拟网络编辑器的网段设置和物理机网段对应就行。第四条别忽视时间同步。平台服务器和设备的时间如果不一致会导致录像时间错乱、日志时间对不上、证书验证失败等问题。部署时顺手把 NTP 配好sudo timedatectl set-timezone Asia/Shanghai sudo timedatectl set-ntp true第五条留好回退方案。改配置文件之前先备份cp config.xml config.xml.bak这个习惯能救命。尤其是改网络配置和 SSH 配置的时候改错了可能直接失联有备份还能通过其他方式恢复。最后说一个关于 SSH 的小技巧。如果你管理的服务器比较多可以在本地~/.ssh/config里给每台服务器起个别名配置好 IP、用户、端口以后直接ssh hik01就能连上不用每次敲一长串。配置文件长这样Host hik01 HostName 192.168.1.200 User admin Port 22 IdentityFile ~/.ssh/id_rsa这个配置在部署多台平台服务器时特别省事值得花五分钟配一下。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进