半夜三点被P0级告警炸醒,一看监控,推流上行带宽直接被打穿。
做直播这行,最怕的就是遇到大流量CC或者反射攻击,RTT飙升,OBS疯狂断流。(别问,问就是半夜三点被告警叫醒)
今天复盘一次 视频直播美国高防主机 的排障实操,靠改几行内核配置,硬是把50G的恶意流量洗得干干净净。
推流卡顿的底层网络诱因
- 很多干这行的以为带宽够大就能扛,其实大错特错。
- 当遭遇 UDP泛洪 时,Linux默认的协议栈根本来不及处理,直接丢包。
- 这时候你去看
netstat -s | grep reassembles,全是不完整的分片,源站CPU瞬间拉满。 - 必须通过 BGP Anycast 在边缘节点把脏流量引流走,再配合本地内核参数调优,才能保住连接。
不同清洗策略的延迟对比
| 清洗方式 | 延迟波动 | 源站负载 | 适用场景 |
|---|---|---|---|
| 本地iptables限速 | 极大 | 极高 | 临时应急 |
| 远端高防IP引流 | 中等 | 极低 | 大流量直播 |
| 融合CDN回源 | 较小 | 低 | 秀场/游戏直播 |
这几种业务千万别硬抗
- 如果你的业务是纯静态图片站,或者无状态的只读接口,千万别买高防。
- 这种业务直接上云存储加CDN就行,买高防纯属浪费预算。
- 另外,如果推流协议是老旧的RTMP且没做鉴权,被扫到就是死,换个带Token校验的SRT协议才是正经事。
tcpdump -i eth0 -n -s 0 port 1935 and host 192.168.1.100 -w rtmp_drop.pcap用 tcpdump 抓包看看究竟是哪个IP在疯狂发SYN,直接拉黑。
SRE团队排障记录:专注高并发网络流量清洗与内核协议栈调优。
推流帧率不稳随时会引发客诉退单。立刻排查服务器 nf_conntrack 表是否爆满,调整内核参数,把恶意连接挡在机房门外,保住今晚的直播流水。