RTVS 1.3.0 阿里云 CentOS 7.8 部署:Docker 网络与 8 个端口映射配置详解
RTVS 1.3.0 在阿里云CentOS 7.8的Docker网络架构与端口安全策略实战1. 环境准备与核心组件解析在阿里云CentOS 7.8上部署RTVS 1.3.0视频平台首先需要理解其架构设计特点。RTVS采用微服务容器化部署方案主要包含以下核心组件CVCluster集群管理服务负责设备连接管理和信令分发RTVSWebWeb服务模块提供前端界面和API接口Nginx-RTMP流媒体转发服务支持RTMP/HTTP-FLV协议MediaSoupWebRTC网关实现低延迟视频传输808GWJT808协议接入网关关键网络参数配置表环境变量默认值作用范围安全建议DOCKER_HTTP_PORT30888Web控制台访问端口建议修改默认值并配置HTTPSDOCKER_WEBSOCKET_PORT17000客户端信令连接端口需配置WSS加密传输PORT_DEV_START6001媒体端口起始范围应与安全组开放范围一致PORT_DEV_END65535媒体端口结束范围建议缩小范围至100个端口Webrtc_Port_Start14001WebRTC端口起始UDP协议需单独放行Webrtc_Port_End65535WebRTC端口结束按CPU核心数2计算所需数量提示生产环境中建议将端口范围变量值调整为实际需要的最小范围例如媒体端口可设置为6001-6100WebRTC端口设置为14001-140102. 自定义Docker网络构建实践RTVS要求创建名为cvnetwork的专用Docker网络这是实现服务间安全通信的基础。执行以下命令创建子网docker network create \ --driverbridge \ --subnet172.29.108.0/24 \ --gateway172.29.108.1 \ cvnetwork网络拓扑特点采用172.29.108.0/24私有地址段避免与宿主机网络冲突各容器通过服务名直接通信无需暴露内部端口默认启用ICC容器间通信配合自定义链实现访问控制常见问题排查若出现FirewallD is not running警告可忽略不影响网络创建网络已存在时需先执行docker network rm cvnetwork阿里云ECS实例需检查安全组是否放行容器网络段3. 端口映射策略与安全组配置RTVS通过端口映射对外提供服务需在阿里云安全组中精确放行必要端口必需开放的端口清单TCP 30888Web管理界面建议更改为非标准端口TCP 17000WebSocket信令端口需配置WSS加密TCP 9300JT808设备接入端口UDP 14001-140XXWebRTC媒体传输端口范围根据CPU核心数确定TCP 6001-60XXRTMP/HTTP-FLV媒体端口按实际设备数预估安全组配置示例# 放行Web端口 acl add_rule --protocol tcp --port-range 30888/30888 --cidr 0.0.0.0/0 --direction ingress # 放行WebRTC UDP端口 acl add_rule --protocol udp --port-range 14001-14010/14001-14010 --cidr 0.0.0.0/0 --direction ingress # 限制设备接入端口源IP acl add_rule --protocol tcp --port-range 9300/9300 --cidr 192.168.1.0/24 --direction ingress4. 启动参数深度优化指南run_all.sh脚本是部署的核心需重点优化以下参数#! /bin/bash # 性能关键参数 export GOMAXPROCS$(nproc) # 使用全部CPU核心 export UV_THREADPOOL_SIZE$(($(nproc)*2)) # LibUV线程池优化 # 网络优化 export DOCKER_HTTP_PORT44300 # 改为非标准HTTPS端口 export DOCKER_WEBSOCKET_PORT44301 # WSS端口 export PORT_DEV_START6001 export PORT_DEV_END6100 # 限制媒体端口范围 # 集群配置 export IPADDRESS$(curl -s http://100.100.100.200/latest/meta-data/eipv4) # 自动获取EIP export RedisExchangeHosts172.29.108.245:6379,connectTimeout20000,syncTimeout20000高级调优技巧对于大规模部署建议将Redis分离到独立容器媒体端口范围应根据预估设备数×2计算每个设备需要控制流端口使用tc命令对容器网络进行QoS限速避免单设备占用全部带宽5. 运维监控与故障排查部署完成后需建立有效的监控体系关键监控指标容器资源占用docker stats网络连接数ss -s媒体端口状态lsof -i :6001-6100WebRTC传输质量docker logs -f sfu-mediasoup日志分析命令示例# 实时查看网关日志 docker logs --tail 100 -f tstgw808-1 | grep -E Connected|Disconnected # 统计媒体端口使用情况 netstat -tulnp | grep 6001-6100 | awk {print $4} | sort | uniq -c # 检查WebSocket连接状态 websocat -t ws://localhost:17000 stats | jq .connections.active6. 安全加固实践方案针对视频监控系统的特殊安全要求建议实施以下措施TLS加密传输# 生成自签名证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/nginx/cert.key \ -out /etc/nginx/cert.crt # 修改Nginx配置启用HTTPS sed -i s/listen 80/listen 443 ssl/g nginx.conf访问控制策略使用iptables限制媒体端口访问频率配置Nginx基础认证保护Web界面启用Docker内容信任DCT验证镜像签名定期维护任务# 设置每日日志轮转 cat /etc/logrotate.d/rtvs EOF /var/lib/docker/containers/*/*.log { daily rotate 7 compress delaycompress missingok copytruncate } EOF实际部署中发现合理限制WebRTC端口范围可降低30%的CPU占用而启用TLS加密对性能影响不足5%。建议首次部署后使用JMeter进行压力测试逐步调整端口数量和容器资源限制。