返回文章列表

Article

终极指南:OpenWrt 24.x 单线复用实现宽带拨号与 IPTV 双网融合

一份基于 OpenWrt 24.x 的实战教程:在光猫到路由器仅一根网线的场景下,完成 Internet 与 IPTV 的单线复用与双网融合。

更新于

对于喜欢折腾家庭网络的玩家来说,把 IPTV 融合到局域网,让全家任意设备都能看电视,是一件极具成就感的事。

本文将为你提供一份详尽的实战指南。本教程适用场景明确:OpenWrt 作为主路由拨号,光猫与 OpenWrt 之间只有一根网线,这根线同时承担 Internet 与 IPTV 业务


一、 核心概念科普:在动手前你需要知道什么?

很多新手跟着教程做却频频翻车,往往是因为没有理清底层的网络逻辑。在开始配置之前,我们先达成几个核心共识:

1. 你的场景本质上是“单线复用(VLAN Trunk)”

你现在物理上只有一根网线连接光猫和路由器,要同时跑两套业务,就必须把它当成 Trunk 口 使用。

  • 一套逻辑接口负责 PPPoE 宽带上网。
  • 一套逻辑接口负责 IPTV 专网接入。
  • 这二者通过不同的 VLAN ID 来区分隔离。

2. 光猫配置是成败的绝对前提

如果光猫连 OpenWrt 的那个端口,没有同时绑定/透传 Internet 和 IPTV 的对应 VLAN,那 OpenWrt 里怎么配都不可能成功!第一检查项永远是光猫的业务绑定状态

3. 直播与回看的本质区别:组播 vs 单播

  • 直播(组播 Multicast):重点在于 VLAN 配置、组播流引入,以及利用 rtp2httpd 等工具将组播转为 HTTP 单播供局域网播放。
  • 回看 / FCC(单播 Unicast):涉及机顶盒鉴权信息(如 MAC、DHCP Option 12/60 字段),往往还需要配置策略路由(PBR)来确保流量走向正确的 IPTV 接口。
  • 黄金法则:先跑通直播,再追求回看 / FCC,这是最稳妥的路线。

4. 彻底搞懂 IGMP Snooping 与 IGMP Proxy

不要轻信网上“一律全开”或“一律全关”的说法。

  • IGMP Snooping(防泛洪):属于二层能力,主要防止组播流量在局域网内泛洪(一开电视全网卡死,优先怀疑它)。
  • IGMP Proxy(跨网段):属于三层能力,负责让组播流量跨越不同网段转发(光猫直连能看,接路由器不行,优先怀疑它)。
  • 如果我们使用 rtp2httpd 转换组播为 HTTP,局域网内的最终流量主要是单播,此时 Snooping 不是绝对必需项,但 Proxy 往往有助于将流引入路由器本机。

二、 避坑排雷:OpenWrt 24.x 架构差异

网上的大量教程基于老版本的 swconfig 架构编写,直接照抄会导致找不到菜单、概念混淆甚至断网。OpenWrt 24.x 用户请务必注意以下几点:

  1. DSA 架构全面普及:在 OpenWrt 24.x 中,配置 VLAN 不再使用 eth0.1 这种命名或“交换机(Switch)”页面。现在依赖的是“网络 → 设备(Devices)”和“网络 → 接口(Interfaces)”的层级分离设计。
  2. 设备(Device)与接口(Interface)的区别
    • 设备偏向底层物理或数据链路层,例如 waneth1wan.30eth1.30(VLAN 子设备)。
    • 接口偏向协议层,例如将 PPPoE 或 DHCP 协议绑定到特定的底层设备上。
  3. 不要随便乱动 br-lan:在单线复用的第一阶段,我们只需在 WAN 侧物理设备上拆分逻辑接口,除非你需要专门划分一个物理 LAN 口给机顶盒,否则一开始不需要去配置桥 VLAN 过滤。
  4. 包管理器变更:官方 OpenWrt 24.10 在很多场景下已经将包管理器从 opkg 切换为了 apk,安装插件前请先用 which apk 确认。

三、 保姆级实战教程(基于 OpenWrt 24.x + LuCI)

第 0 步:备份是唯一的后悔药

在 LuCI 中进入“系统 → 备份 / 升级”导出配置,或者通过 SSH 备份 /etc/config/network/etc/config/firewall/etc/config/dhcp

第 1 步:确认底层 WAN 设备与 VLAN 信息

  1. 进入“网络 → 接口”,查看当前 WAN 接口绑定的是哪个底层设备(例如 wan,也可能显示为 eth1 (wan),或者已经带 VLAN 的 wan.41 / eth1.41)。如果你当前能正常上网,千万不要随意更改当前的 WAN 接口本身
  2. 获取你本地真实的 IPTV VLAN ID。切勿照搬网上的数字,必须以你本地光猫配置和抓包结果为准。(补充线索:某些社区反馈天津移动的 IPTV VLAN 可能是 30,组播 VLAN 可能是 511,但这仅供试错参考,并非官方权威数据)。

第 2 步:在 WAN 设备上创建 802.1Q VLAN 子设备

  1. 进入“网络 → 设备”,点击“添加设备配置”。
  2. 类型选择 802.1Q VLAN(8021q)
  3. 基础设备选择“当前 WAN 接口实际绑定的底层设备”(例如 wan,或 eth1 (wan) 这种显示方式)。
  4. VLAN ID 填入你的 IPTV VLAN(假设为 30)。
  5. 保存后,新设备命名通常是“基础设备名 + .VLANID”,例如 wan.30eth1.30

第 3 步:创建并配置 IPTV 接口

  1. 进入“网络 → 接口”,点击“添加新接口”,命名为 iptv
  2. 设备选择刚才创建的 VLAN 子设备(例如 wan.30eth1.30)。
  3. 协议选择策略
    • 先试 DHCP 客户端:适合大多数地区的第一步验证。
    • 如果当地明确要求 PPPoE:部分地区 IPTV 需要独立拨号,请按实际情况选择 PPPoE 并填入机顶盒专用账号。
  4. 进入该接口的“高级设置”,务必进行以下操作(防止干扰正常上网):
    • 取消勾选“使用默认网关”。
    • 关闭“使用对端通告的 DNS 服务器”。
    • 关闭“IPv6 前缀委派”。
    • 如果是 PPPoE 模式,将网关跃迁值(metric)设置得比普通 WAN 更大(更靠后)。

第 4 步:独立防火墙区域设置

  1. 进入“网络 → 防火墙”,新增一个名为 iptv 的 zone(区域)。
  2. 覆盖网络勾选刚才建立的 iptv 接口。
  3. 基本策略设置为:入站 (Input) ACCEPT,出站 (Output) ACCEPT,转发 (Forward) REJECT
  4. 关于动态伪装(Masquerading):直播阶段建议先不开启;如果后续发现单播、回看或平台接口无法访问,再重点尝试将 masquerading 打开。

第 5 步:安装与配置 rtp2httpd

rtp2httpd 能够将 IPTV 组播流转换为 HTTP 流,大大降低局域网设备播放的门槛。

安装过程

如果您使用的是官方 OpenWrt 24.10:

apk update
apk add tcpdump igmpproxy rtp2httpd luci-app-rtp2httpd

如果您的系统仍然使用 opkg,则将 apk add 替换为 opkg install

配置服务

  1. 在 LuCI 的“服务”菜单中找到 rtp2httpd
  2. 监听地址设为 0.0.0.0 或路由器局域网 IP,端口通常默认即可(如 4022)。
  3. 上游组播接口上游单播接口:极其关键,通常都需要指定为你创建的 iptv 接口(或其底层设备)。接口配错是导致“服务启动了但播不出画面”的最常见原因。

第 6 步:测试验证

  1. 在浏览器访问 http://路由器LAN地址:4022/status,确认服务运行正常且不报错。
  2. 寻找当地运营商的已知有效组播地址,使用播放器测试 HTTP 流,格式通常为 http://192.168.1.1:4022/rtp/239.x.x.x:port

结语:进阶之路

完成以上步骤后,你的局域网应该已经可以稳定观看 IPTV 直播了。这也意味着我们的第一阶段目标顺利达成。

如果你想继续折腾回看、FCC(快速换台)、FEC(前向纠错)或者自动拉取播放列表,你就需要进入更硬核的第二阶段。这通常需要你通过抓包获取机顶盒的认证字段(MAC, DHCP Option 12/60 等),并在路由器上配置静态路由或策略路由(PBR),引导单播流量精准走向 IPTV 专网。

但在此之前,先尽情享受流畅的直播体验吧!