找了好多都要自己抓包,所以做了个相对**一点的。
交换机1口插光猫iptv口,2口插iptv,3口插飞牛闲置口。
交换机设置3口镜像2口。
容器网络 host。抓包需要 NET_RAW,实验性 IPTV 认证和接口路由调整需要 NET_ADMIN。 FNOS 中这两个权限在容器编辑页的「高级设置 → 功能」项目里勾选:NET_RAW、NET_ADMIN。
已知问题:回看和时移正在调试。
有问题可以github或者这里提交,我尽快修复。
IPTV Sniffer Web 1.2.0
完整使用流程
- 搭建镜像拓扑
在管理型交换机中把机顶盒端口设为镜像源,把 Docker 宿主机网口设为镜像目标。容器使用 --network host。抓包需要 NET_RAW,实验性 IPTV 认证和接口路由调整需要 NET_ADMIN。 FNOS 中这两个权限在容器编辑页的「高级设置 → 功能」项目里勾选:NET_RAW、NET_ADMIN。
- 运营商频道发现
打开「运营商频道」,填写机顶盒 IP,选择镜像口,点击「开始捕获」,然后重启机顶盒。捕获完成后导入频道列表。
- 查看 IPTV 认证信息
打开「IPTV 认证」。抓包得到的 STB MAC、Hostname、IPTV IP、网关、Option60、UserToken、FCC 记录会集中显示在这里。
- 频道使用与导出
打开「频道线路」,确认主源和备选线路。导出:
channels-best.m3u:每个频道组只导出主源(需填写 rtp2httpd 地址);
channels-all.m3u:导出全部线路(需填写 rtp2httpd 地址);
channels-fnos-hls.m3u:飞牛影视 HLS(浏览器可直接播放,地址指向本机 HLS 转封装端点);
channels-rtp2httpd-best.m3u:给 rtp2httpd external-m3u 使用的主源文件;
channels-rtp2httpd-all.m3u:给 rtp2httpd 使用的全部线路源文件。
- IPTV 认证(需要主动播放时)
在「IPTV 认证」中填写接口、MAC、Hostname 等参数,点击「实验性一键认证」。执行前会备份初始 MAC、IPv4 和路由,并提供恢复按钮。FNOS 容器必须在「高级设置 → 功能」勾选 NET_ADMIN 和 NET_RAW。
- 播放诊断
打开「播放诊断」,填写 rtp2httpd 地址和一个频道地址。诊断会检查 rtp2httpd 是否可访问、是否匹配 M3U、FCC 是否超时、是否发出 IGMP、是否收到 239.x UDP。
参考与致谢:
核心特性
| 功能 |
说明 |
| 运营商频道发现 |
通过交换机镜像口捕获机顶盒开机流量,解析频道表、组播地址、FCC/FEC、DHCP 认证信息 |
| IPTV 认证助手 |
集中展示 MAC / Hostname / IPTV IP / 网关 / Option60 / UserToken / FCC 摘要;提供实验性一键认证与恢复;支持导出/导入接口初始状态备份;可检测并临时解除选定网口 egress BPF 组播拦截,并支持定时自动修复开关 |
| 频道线路组 |
同名频道自动归组,按播放可用性、FCC/FEC、包数和人工主源标记选择主源,保留备选线路 |
| 播放链路诊断 |
检测 rtp2httpd 可达性、配置、FCC、IGMP、组播回流和镜像口误判 |
| 五档导出 |
channels-best.m3u / channels-all.m3u / channels-fnos-hls.m3u(浏览器 HLS)/ channels-rtp2httpd-best.m3u / channels-rtp2httpd-all.m3u |
| 飞牛影视 HLS 支持 |
按需 FFmpeg HLS 转封装,浏览器直接播放组播流;空闲 60 秒自动停止 |
| EPG & 台标 |
XMLTV EPG + TVlogo 缓存匹配;可在频道线路标签勾选启用/禁用;支持一键重新匹配 |
唯一推荐拓扑:交换机镜像口
光猫 IPTV 口 → 交换机
**─ 机顶盒端口(被镜像源)
**─ Docker 宿主机网口(镜像目标)
这种方式用于 捕获机顶盒开机流量:
- 可以捕获机顶盒开机流量;
- 可以解析频道表、组播地址、FCC/FEC、Option60 等认证信息;
- 可以生成频道线路和 rtp2httpd 源文件;
- 不能证明宿主机可以主动播放,因为镜像口不能主动向 IPTV 上游发送 IGMP/FCC 请求。
如果要让 rtp2httpd 主动播放,必须让某个设备完成 IPTV DHCP 认证并具备主动访问 IPTV 上游的能力。项目中的 IPTV 认证助手 用于辅助完成这一步。
IPTV 认证助手说明
实验性一键认证要求:
network_mode: host
cap_add: NET_ADMIN, NET_RAW
容器以 root 运行
在 FNOS 图形界面中编辑容器时,进入「高级设置 → 功能」,勾选:
NET_RAW:允许 tcpdump 抓包和原始网络访问;
NET_ADMIN:允许实验性认证助手修改选定网口的 MAC、IPv4、路由并执行 DHCP 认证。
强提醒:
- 执行前断开机顶盒 IPTV 线,避免 STB MAC 冲突;
- 确认 Web 管理页面通过另一张网卡访问;
- 默认路由不会被项目主动替换,只会按页面选择写入 IPTV 相关路由。