关于流媒体直播平台使用 P2P 的研究

最近更新日期:2026 年 1 月 6 日,20:32。

注意
此文章可能有时效性,过一段时间后可能不会再起作用。且此文章后续可能会有改动。另外,请根据自己当前的网络实际情况,实行相关的措施。

初见端倪…

之前我在 PC 的浏览器看直播的时候,我发现网络监控软件显示的网络速度有点不对劲,上下行速度近乎对等,然后我再用 Wireshark 抓包看看,好家伙,全是 UDP DTLS 的网络流量,然后怀疑是不是直播用了 P2P 技术。

由于我是想到啥就写啥,所以可能看着有点乱,先凑合看吧。

分析

简单来说就是,你在直播间里,服务器会给你发送内容。
同时,你的设备也会给同样在直播间里的其他用户发送内容,也就是说,你的设备会被当成服务器。而且,如果你的网络环境条件好的话,上传给其他用户的概率就越大。

利与弊

好处就是,但对于服务商来说,降低了服务器资源和网络资源的占用,还能让服务商少掏点钱。坏处嘛..那就成了用户的了,那就是占用你设备大量的网络资源,和设备资源,而且各个参与 P2P 的网络用户,网络环境条件是参差不齐的,很容易出现直播缓冲的情况。

而且,鉴于目前三大运营商的跨省流量结算,和跨运营商 QoS 的策略,如果总上传过大,很容易被运营商以 PCDN 为由,对你的网络进行限速处理。

屏蔽措施

在电脑上

如果你用电脑看的话,其实挺简单的,只需要把 STUN 服务器地址屏蔽,就可以了,去 hosts 文件把域名全解析到 0.0.0.0 就行。还有一种,是直接关闭 WEBRTC,你可以去浏览器的应用商店搜索 AdGuard,里面提供了关闭 WEBRTC 的选项。但是直接关闭 WEBRTC 过于一刀切了,会影响其他需要 P2P 的用途,除非…你不用。

如果你用客户端,那我不太建议,因为客户端更容易绕过此种限制,如果你一定要使用客户端,那你可以试试用反病毒软件自带的网络监控功能,给客户端限制上传速度,请注意,上传速率设置太低会影响正常使用。

在手机上

手机的话,屏蔽就有点难了,可能需要借助其他网络设备来屏蔽。

但如果你的路由器有条件进命令行(Telnet 或 SSH)的话,那你或许可以试试对看直播的设备,进行单独的 IPtables MASQUERADE 地址伪装,然后设置 –random 或 –random-full 参数,将 NAT 设置为对称性的,来阻止 P2P。

命令行示例:

1
iptables -t nat -I POSTROUTING -s 192.168.222.222 -j MASQUERADE --random/--random-fully

如果你需要对其它滥用 STUN P2P 上传的设备进行“制裁”,你也可以试试这么做。

对于手机的热点,如果你手机有 root 的话,你也可以使用 IPtables 命令来对单独的源地址 IP 设置

但这也有缺点,其他需要使用 P2P 的应用程序可能会出现问题。

在其他设备…

如果想把整个局域网的 P2P 都禁止,而且用的是 OpenWRT,可以这样做…

使用命令行进入 OpenWRT 的 SSH 后台终端,然后使用文本编辑器,nano 或 vim 都可,编辑 /usr/share/firewall4/templates/zone-masq.uc 文件,在最后一行,找到 “masquerade comment”,在两个单词中间,添加 random,保存即可。

如果使用的是 ImmortalWRT 或者是其他第三方编译的版本,自行找到相关选项,并取消勾选。有的叫 Fullcone NAT,有的叫全锥型 NAT。

回到 OpenWRT 的网页 Luci 设置界面,找到“网络”→“防火墙”,重新点击一下“保存并应用”,现在再使用 NAT Type Tester 再看看,测试结果为 Symmetric,且过滤行为和映射行为都为 AddressAndPortDependent

其他人的研究

https://www.bilibili.com/opus/960552827377156133
https://www.bilibili.com/opus/625913491082488344
https://www.bilibili.com/opus/858956728907071497

后续

因为没有完美的办法,毕竟道高一尺魔高一丈。

文章开头也说明过,可能具有时效性,随着 APP 厂商的更新,会发生变动,所以并不是一直都是有效的。就像抵抗校园网的路由器共享检测(v4 NAT)一样,各种 TTL、DPI、UA、时间戳检测法。

所以,请根据自己当前的网络实际情况,实行相关的措施。

就先这样吧,后续有新想法我再修改修改。


关于流媒体直播平台使用 P2P 的研究
https://marshmallowlands.github.io/2026/01/02/2026-01/LiveStreamP2P/
作者
Marshmallowlands
发布于
2026年1月2日
许可协议