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 秒实验
- 算一下:六个服务里几个是 TCP?(五个)
- 想一下:「能登录但点播黑屏」最可能是什么原因?(UDP 没放行)
- 想一下:为什么端口不能按理论值规划?
常见误区
- 以为「进程活着就是启动成功」。 端口可能没绑上,要逐个探。
- 以为「放行一个端口就够了」。 媒体是一整段 UDP。
- 以为「能播但卡也是端口问题」。 那是带宽或并发上限。
自测三问(点开对答案)
1. SMS 的六个服务里哪个走 UDP? —— **RTP 收流**,而且是一整段端口。 2. 「能登录但点播黑屏」最可能是什么原因? —— **UDP 端口段没放行**——信令走 TCP 所以前半段通。 3. 端口回收时滞会带来什么后果? —— **高峰期端口被占着但没用**,**按理论值规划会在几个月后开始「端口分配失败」。**下一节配设备:五行配置错一行,注册就上不去。
- ☐ (本节完,下一节 11.02.05 配置设备接入)