扔掉机顶盒!实现内网任意设备看IPTV(上)
整体思路、硬件准备、网络拓扑与软件环境要求
一、起:动机
家里办了电信 IPTV,光猫有一个专门的 IPTV 口,接上机顶盒就能看电视。
但机顶盒只能接一台电视,想在其他房间、手机、电脑、平板上也看 IPTV?要么再买一个机顶盒,要么只能挂一个采集卡。
显然,我们需要一个更灵活、一次投入长期受益的软方案。
核心思路不复杂:让一台 Linux 主机 串接在光猫 IPTV 口和内网交换机之间,这样它既能透明转发机顶盒的流量,又能同时抓取组播信号供内网使用。
思路分三步:先搭一个透明网桥让 Linux 偷听组播,然后通过这个“偷听”抓包提取 IPTV 组播频道的地址,最后用 udpxy 转成内网都能播放的 rtp 单播流。
本系列分三篇:上篇介绍环境准备,中篇搭建网桥和抓包,下篇完成 udpxy 部署和固化。
二、承:网络拓扑
光猫 IPTV 口 ──(网线)──> USB 网卡 ──[Linux 主机 br0]──> 板载网卡 ──(网线)──> 机顶盒
│
WiFi 管理网卡
(内网其他设备通过此 IP 连接 ssh 访问 udpxy)| 链路 | 说明 |
|---|---|
| 光猫 → USB 网卡 | IPTV 组播流量入口,带 VLAN 标签 |
| USB 网卡 ↔ 板载网卡 | Linux 网桥 br0 透明转发,不修改任何帧 |
| 板载网卡 → 机顶盒 | IPTV 流量出口,机顶盒无感知 |
| WiFi 管理网卡 | 日常 SSH 管理,不参与桥接 |
WiFi 网卡用于远程管理 Linux 主机,不加入网桥。网桥只负责两个有线网卡之间的透传。
三、转:硬件规格
1. Linux 主机
不需要高性能,能跑 Linux 就行。本案例使用的是旧笔记本:
| 项目 | 要求 |
|---|---|
| CPU | 任意,能跑 Debian 即可 |
| 内存 | 512MB 以上 |
| 存储 | 8GB 以上 |
| 网卡 1 | 板载有线网卡(接机顶盒) |
| 网卡 2 | USB 有线网卡(接光猫 IPTV 口) |
| 网卡 3 | WiFi 网卡(管理用,不参与桥接) |
USB 网卡建议选免驱的型号(如 RTL8153、AX88179),避免折腾驱动。插入后用 ip link 确认能识别。
2. 网线
两根:一根从光猫 IPTV 口到 USB 网卡,一根从板载网卡到机顶盒。
3. 光猫
需要确认光猫的 IPTV 口是单独的 LAN 口,否则需要超级管理员密码才能配置。
四、合:软件环境
1. 系统
| 项目 | 说明 |
|---|---|
| 发行版 | Debian / Ubuntu(其他发行版也行,命令可能略有不同) |
| 内核 | 3.x 以上即可,推荐 5.x+ |
| 本案例 | Debian Trixie,Linux 6.12 |
2. 必需软件
| 软件 | 用途 | 安装方式 |
|---|---|---|
ip(iproute2) | 网卡、网桥、VLAN 管理 | 系统自带 |
bridge(bridge-utils 的替代) | VLAN 过滤配置 | 系统自带(iproute2 包含) |
tcpdump | 抓包提取组播地址 | apt install tcpdump |
gcc / make | 编译 udpxy | apt install gcc make |
wget | 下载 udpxy 源码 | apt install wget |
apt update && apt install -y tcpdump gcc make wgetip 和 bridge 命令属于 iproute2 包,Debian/Ubuntu 默认已安装。不需要安装 bridge-utils(那个是旧版工具)。
可选软件
| 软件 | 用途 |
|---|---|
| VLC | 电脑端播放 IPTV 流 |
| Wireshark | 图形化分析抓包文件(可选,tcpdump 足够) |
IPTV 基础知识
什么是组播
IPTV 使用 UDP 组播(Multicast)传输视频流。和普通的 HTTP 视频不同,组播是“一对多”的:服务器只发一份数据,网络设备负责复制分发。
组播地址范围是 224.0.0.0 – 239.255.255.255,IPTV 通常使用 239.x.x.x 段。
什么是 VLAN 标签
有些地区的 IPTV 流量带有 802.1Q VLAN 标签(帧头多 4 字节),用于区分 IPTV 流量和普通上网流量。网桥需要启用 vlan_filtering 才能正确透传这些带标签的帧。
为什么需要网桥
直接让 Linux 收组播流量,机顶盒就断了。网桥模式下,Linux 像一根“智能网线”,两边的帧原样转发,同时自己也能收到一份副本。
准备工作检查清单
开始搭建前,确认以下条件:
- Linux 主机已安装并能 SSH 远程登录
- 两块有线网卡均已识别(
ip link能看到) - 光猫独立 IPTV 口
- 机顶盒能通过光猫 IPTV 口正常看电视(确认原始链路没问题)
- 一根网线从光猫 IPTV 口接到 USB 网卡
- 一根网线从板载网卡接到机顶盒
全部就绪后,进入中篇开始搭建网桥。