📹 第十一章 GB/T 28181国标平台案例应用
📄 一句话概括

SMS 起来之后,第一件事不是打开网页,是看端口。 端口没起来,网页再漂亮也没用。 六个服务里最容易被防火墙漏掉的是那段 UDP——它不是「一个端口」,是「一段」。

📝 本节和前面几节的关系

上一节配好了,这一节讲「起来之后怎么确认它真的在工作」。 「启动成功」和「能用」是两件事,中间隔着端口、权限、防火墙三关。

一、六个服务,五个 TCP 一个 UDP

HTTP 管理、RTSP、HTTP-FLV、HLS、RTMP 各一个 TCP 端口,RTP 收流是一段 UDP。 这六样加起来才叫「SMS 起来了」,少一样就是「某个功能不可用」。 所以「验证启动」的正确做法是逐个端口探一遍,不是看进程还在不在。 进程活着但端口没绑上,这种情况很常见。 探端口有个简单办法:用 netstat 看监听状态,再用客户端连一下 TCP 的。 UDP 没法「连」,只能靠实际收流验证。

二、排障顺序:从现象倒推

网页打不开,先查 HTTP 端口和进程;能登录但设备离线,查 SIP 端口和注册报文; 点播黑屏,查 UDP 端口段有没有放行。 这三步的顺序不能反:先确认「平台活着」,再确认「设备连上了」,最后才看「流通不通」。 反过来查会在一堆无关的日志里迷路。 「点播黑屏」最常见的原因是 UDP 端口段没放行, 因为很多人只放了一个端口,或者放了 TCP 忘了 UDP。 国标的媒体默认走 UDP,这一点和 HTTP 完全不同。 还有一个容易误判的现象是「能播但很卡」:那不是端口问题,是带宽或 max_stream 上限。 两者表现相似、原因完全不同。

三、端口规划的余量

一万个端口理论上五千路,实际按两千五规划——因为端口回收有时滞。 「时滞」具体是什么:一路流断了,系统不会立刻把端口还回池子,要等超时、等清理。 高峰期频繁上下线,端口就会被「占着但没用」。 所以「按理论值卖方案」是一种典型的技术债:验收时够用,跑三个月就不够了。 而且这种故障很难查—— 日志里只会写「端口分配失败」。

四、动手 Demo:启动之后,先看哪几个数

列六个服务的端口和协议,再按「现象→先查什么」做一张对照表,最后算端口余量。

ports = [("HTTP", 10100, "tcp"), ("RTSP", 10554, "tcp"),
         ("FLV", 10801, "tcp"), ("HLS", 10800, "tcp"),
         ("RTMP", 10935, "tcp"), ("RTP", 30000, "udp")]
print(len(ports), "个服务")

start, end = 30000, 40000
print("理论", (end - start + 1) // 2, "路")
print("建议", (end - start + 1) // 4, "路")

实跑输出:

--------------------------------------------------------------------
启动之后,先看哪几个数
--------------------------------------------------------------------
**LiveSMS 起来之后,第一件事不是打开网页,是看端口。**
**端口没起来,网页再漂亮也没用。**

  服务              端口          协议
  -------------------------------------------
  **HTTP 管理**     **10100**     **tcp**
  **RTSP**          **10554**     **tcp**
  **HTTP-FLV**      **10801**     **tcp**
  **HLS**           **10800**     **tcp**
  **RTMP**          **10935**     **tcp**
  **RTP 收流**      **30000**     **udp**

**六个服务、五个 TCP 加一个 UDP 段**——**这解释了为什么「平台装好了但打不开」**:
**防火墙只放行了 HTTP,媒体那段 UDP 没放。**
**表现就是「能登录、能看到设备列表、一点播就黑屏」。**

**排障顺序应该是这样**:

  现象                     先查
  ---------------------------------------------------------
  **网页打不开**           **HTTP 端口和进程是否活着**
  **能登录但设备离线**     **SIP 端口和注册报文**
  **点播黑屏**             **UDP 端口段有没有放行**
  **能播但很卡**           **带宽和 `max_stream` 上限**
  **录像没有**             **`record_path` 权限和磁盘**

**第三行是最常见的**,**因为 UDP 端口段最容易被防火墙漏掉**:
**它不是「一个端口」,是「一段」,很多人只放了一个。**

**还要注意端口段的算法**:
  端口段 30000~40000 共 10001 个端口
  每路两个(RTP 加 RTCP)→ 理论上 5000 路
  留一半余量 → 建议按 2500 路规划

**「理论上五百路、建议按二百五十路规划」这个差距**,**不是因为系统弱,是因为「端口回收」有时滞**:
**一路流断了,端口不会立刻还回去。**
**所以规划要按最坏情况算。**

五个 TCP 加一个 UDP 段,这个组合解释了「平台装好了但打不开」的多数情况: 防火墙规则里通常只写了 TCP。 「能登录、能看到设备列表、一点播就黑屏」这个现象, 是 UDP 没放行的典型表现——因为信令走 TCP、媒体走 UDP,前半段通、后半段断。 排障表那五行里,第三行出现的频率最高,而且它最容易和「设备没配好」混在一起: 同样是黑屏,一个是防火墙,一个是编号错。 区分办法是看「注册有没有成功」——注册成功就是防火墙。 最后算的「理论五千、建议两千五」,差距全在端口回收时滞上。 按理论值规划的项目,通常在第三个月开始出问题。

30 秒实验

  1. 算一下:六个服务里几个是 TCP?(五个)
  2. 想一下:「能登录但点播黑屏」最可能是什么原因?(UDP 没放行)
  3. 想一下:为什么端口不能按理论值规划?

常见误区

  1. 以为「进程活着就是启动成功」。 端口可能没绑上,要逐个探。
  2. 以为「放行一个端口就够了」。 媒体是一整段 UDP。
  3. 以为「能播但卡也是端口问题」。 那是带宽或并发上限。
自测三问(点开对答案) 1. SMS 的六个服务里哪个走 UDP? —— **RTP 收流**,而且是一整段端口。 2. 「能登录但点播黑屏」最可能是什么原因? —— **UDP 端口段没放行**——信令走 TCP 所以前半段通。 3. 端口回收时滞会带来什么后果? —— **高峰期端口被占着但没用**,**按理论值规划会在几个月后开始「端口分配失败」。**

下一节配设备:五行配置错一行,注册就上不去。

相关笔记