配置端口、域名、HTTPS 与 NAT
视频平台不是只有一个 Web 端口。管理请求、设备信令、媒体传输和浏览器 RTC 使用不同协议;任何一条链路不可达,都可能表现为“页面正常但没有画面”。
flowchart LR
A[管理员 / 用户浏览器] -->|HTTPS / WebSocket| B[AKStream.Next]
C[摄像机 / NVR] -->|ONVIF / SIP / RTSP / RTP| B
B --> D[MediaServer]
A <-->|HLS / FLV / WebRTC| D
D --> E[录像存储]
先按访问者分组
| 访问者 | 需要到达的服务 | 常见协议 |
|---|---|---|
| 管理员与业务系统 | AKStream.Next WebUI/API | HTTPS/HTTP、WebSocket |
| ONVIF 摄像机 | 发现与设备服务、摄像机 RTSP | WS-Discovery、SOAP/HTTP、RTSP/RTP |
| GB28181 设备/平台 | SIP 与 RTP | TCP/UDP 5060/5061、RTP 端口范围 |
| 普通播放器 | MediaServer | HLS、HTTP-FLV、RTSP、RTMP |
| RTC 浏览器 | 信令与媒体 | HTTPS/WSS、ICE UDP/TCP、STUN/TURN |
| AKStream.Next 与 MediaServer | API、WebHook | 内部 HTTP/HTTPS |
只开放 5800 不能完成媒体播放;只反向代理 443 也不能替代 SIP、RTP、RTSP 和 TURN。
默认端口只是起点
常见默认值包括 AKStream.Next 5800/TCP、MediaServer HTTP 80/TCP、RTSP 554/TCP、RTMP 1935/TCP、GB28181 Server 5060/TCP+UDP、Client 本地 5061/TCP+UDP、RTC 8000/TCP+UDP、RTP proxy 10000/TCP+UDP、RTP 接收池 30000–30100/UDP、sendRtp 30102–30200/UDP 和 TURN 49152–49200/UDP。
最终以有效配置和首次向导生成的清单为准。完整查表见 端口与防火墙参考。
HTTPS 与反向代理
推荐架构:
Browser HTTPS/WSS :443
↓
Nginx / OpenResty
↓
AKStream.Next HTTP :5800
代理需正确传递客户端地址、Host、协议头和 WebSocket Upgrade。MediaServer 的 HLS/FLV/API 可按需要配置独立域名或路径,但注意长连接、代理缓冲、Range、CORS 和超时。
已有 BT/aaPanel、1Panel、CloudPanel、phpStudy 或 AMH 时,以实际运行进程、启动参数、nginx -T 和真实配置挂载为证据。不要假设所有面板使用同一目录。
证书选择
- HTTP-01 申请证书需要公网 TCP 80,业务仍走 443。
- DNS-01 通过
_acme-challengeTXT 验证,适合泛域名或不能开放 80 的环境。 - Kestrel 可直接加载 PFX/PEM,但统一入口、续期和多个服务治理通常更适合反向代理。
- HTTPS 页面不能加载 HTTP 或 WS 媒体资源,否则浏览器会按混合内容阻止。
证书续期后要验证代理与相关媒体服务真正加载了新证书,不要只看磁盘文件日期。
NAT 与 RTC
局域网可用不代表公网可用。WebRTC 的 SDP candidate 必须是浏览器能到达的地址;对称 NAT、企业防火墙或禁用 UDP 的环境通常需要 TURN 中继和 TCP 兜底。
分别验证:
- 同一局域网;
- 普通公网 NAT;
- 对称 NAT 或移动网络;
- UDP 被禁;
- 多网卡服务器。
GB28181 端口映射
SIP 监听端口与对外公告端口不是同一个概念。公告端口只改变出站信令里供对端回访的地址,不会自动创建新监听,也不会开放防火墙。RTP 端口范围必须与实际 openRtpServer 或 sendRtp 分配一致。
验证方法
从每个真实来源网段执行连接或抓包验证,而不是只在服务器本机:
- 浏览器能访问 HTTPS、建立 WebSocket。
- 设备能到达 SIP/ONVIF 服务,服务器能回访设备 RTSP。
- MediaServer 能接收 RTP 或拉取源流。
- 最终播放器能访问当前媒体节点的播放地址。
- 日志中的 Host、Scheme、客户端 IP 和媒体节点符合预期。
完成后进入 生产上线验收。