众所周知 IPTV 因为是一个独立网络,会给家里网络布线带来一些不便。例如很多人家里弱电箱到客厅只有一根网线,如果想要光猫放弱电箱,IPTV 、路由器、游戏机等放客厅,那么就会有麻烦。一般常用方式要不是把一根 8 芯网线分成两根 4 芯降速到 100M 跑,要不是用带有 VLAN 管理的交换机实现单线复用。
这里我提供另一个思路,即把 PTV 网和宽带网同时接入到主路由器上,然后用静态路由来分流。这个方案好处是不再依赖 VLAN ,因为很多家用路由器不支持 VLAN 管理; IPTV 盒子随意接到家里任何一个网口上都可以使用。
其实思路很简单,但是有一些坑,特别是涉及组播相关。下面以我所在地 海南电信 为例。
我的网络拓扑很简单:
光猫 <--> 主路由器 <--> AP
其中主路由器是 x86 软路由,安装了原版 openwrt 。AP 是市面上常见的家用 mesh 路由器,我的是华硕系列。光猫桥接模式,主路由拨号上网。
通过前期的抓包分析,我已经知道:
有了上面这些抓包分析之后,配置方法就明确了:
关于 FCC 的这部分我找了很多资料,过去应该很少有人提到过它。我折腾了很久,反复抓包对比才发现它的工作方式类似 FTP 主动模式,需要在防火墙上开端口映射才行。希望大家点个赞。
目前还有一个遗留问题,是 DHCP 获取的地址,1-2 天后会失效且不会自动重新获取。猜测有某种保活机制,但是我还没有逆向出来。现在我的应对办法是在路由器上通过脚本定期重启 wan2 interface 和 omcproxy 。
![]() | 1 lqzhgood 2023-09-07 18:39:37 +08:00 看起来 wan2 --DMZ--> 机顶盒 可以完全解决端口问题~ 免得机顶盒还有什么奇怪的交互~ |
![]() | 2 jsq2627 OP @lqzhgood 是的,我抓包甚至看到有 STUN 协议相关的交互,只是 STUN 协商跑一半就终止了,估计厂商根本没想到有人会把盒子放到 NAT 之后,没有测试打洞流程。 正因为 openwrt 没有简易直观的 DMZ 设置,迫使我抓包找到了我要的目标端口 |
![]() | 3 lqzhgood 2023-09-07 18:57:05 +08:00 |
![]() | 4 jsq2627 OP @lqzhgood 我的 luci ui 上提示“外部端口”必填。不过直接改 /etc/config 下的配置是应该可以做到,我搜索到的资料有人这样能成功 其实我自己是把 wan1 wan2 分成了 2 个防火墙 zone ,上文为了简化描述才把他两放同一个 zone 。 |
![]() | 5 lqzhgood 2023-09-07 19:04:07 +08:00 如果从 机顶盒的通讯 是个黑盒且变化的角度考虑~ 主路由单 wan 接外网,IPTV 接入主路由 lan 口,也可以让机顶盒插任意网口看电视,相当于 机顶盒 ---> 主路由-交换机 ---> 光猫 IPTV 这样只要解决 主路由-交换机 存在两个 DHCP 的问题。 如果主路由通过 ARP MAC 绑定家里设备 IP ,关闭 DHCP 对其他设备的分配,就能让机顶盒获取到 IPTV DHCP 这样只要麻烦一次(绑定家里全部设备 IP ),但是可以保证机顶盒不会出问题(没有 NAT ,相当于交换机直连了) |
![]() | 6 jsq2627 OP @lqzhgood 这样也有缺点,把整个家里的二层网络桥接到 IPTV 大网下了,有严重的安全问题 我在 IPTV 接口上抓包的时候,确实看到很多奇奇怪怪的 ARP 请求,估计这样用的人不在少数 :doge: |
7 fish3125 2023-09-07 19:18:26 +08:00 via iPhone 我这边现在不用这么麻烦,福建电信是走 pppoe,验证信息在盒子上,把这个盒子拿到其他地方有网络也可以看。 |
![]() | 8 jsq2627 OP @fish3125 各个地区确实有差异。 我曾经在广州电信实验过,IPTV 盒子接入到普通宽带网下面都可以正常播放,但是不再是走组播,而是普通单播。其实这时候它和其他 OTT 盒子已经没有任何区别了。当时电信给我的 IPTV 盒子都自带 WIFI 功能,用 WIFI 连接家里网络后,一样可以观看。 海南电信就不行,抓出来直播源只有组播地址,没有 RTSP 单播地址。盒子也只能接入到 IPTV 专网下才能用,也没有 WIFI 能力(组播和 WIFI 天生势不两立)。 |
![]() | 9 0ranger 2023-09-07 19:56:38 +08:00 最近也打算弄 iptv ,但是到客厅只有一条网线,而且已经插了路由器。关于玩 iptv 有比较系统些的教程文章推荐吗 |
![]() | 10 MacTavish123 2023-09-07 20:11:35 +08:00 via Android 我这便宜路由器打开 IPTV 功能,光猫拨号,设置好。家里其他联网设备都可以用组播了。手机,平板,电视,电脑都行了,VLC 可以串流,Kodi 装电视上方便。 |
11 hanguofu 2023-09-07 20:37:46 +08:00 谢谢分享宝贵经验~ 顺便问问 : 没有光猫超级密码 也可以把光猫 设置为 桥接 模式吗 ? |
12 465456 2023-09-07 21:27:46 +08:00 ![]() https://github.com/ruur/cmcc-iptv 网上教程一大把,现在新的路由器都有 iptv 功能,没有就刷 openwrt 吧 |
13 sunulin 2023-09-07 21:32:05 +08:00 via iPhone 前几天还想这个,我这主路由器是 ikuai ,也可以通过光猫把两条线查到 ikuai 上实现 |
![]() | 14 1QWxx6CtzA3CPgEQ 2023-09-07 21:37:50 +08:00 武汉电信 有这个业务 叫一线同传, |
15 ochatokori 2023-09-07 21:41:58 +08:00 via Android @jsq2627 #8 广州的之前是可以这样,只要盒子随便连个网络就可以了,iptv 走公网。现在都要求 iptv 盒子拨号,不给走公网了 |
16 HOOC 2023-09-07 22:09:57 +08:00 via Android 我父母家情况和楼主类似,我是 wan1 双拨宽带,wan2 拨 iptv ,盒子 dmz 和全走 wan2 ,内网设备访问单播网段时走 wan2 ,我这边已经没有组播了,只有单播,且单播地址有效期是 1 个月,所以我又根据 V2EX 上老哥给出的方法写了个 python 脚本自动抓单播源。 |
17 jcxq5200 2023-09-07 22:25:17 +08:00 via iPhone 我现在都是用的 ipv6 直播源 |
![]() | 18 UXha45veSNpWCwZR 2023-09-07 22:50:03 +08:00 via iPhone @jcxq5200 #17 具体分享一下~是你家的直播源?还是网上找的? |
19 lcy630409 2023-09-07 23:13:43 +08:00 |
20 lookookok 2023-09-07 23:37:44 +08:00 lan 中使用了傻瓜交换机,组播过来时候会不会泛洪? |
![]() | 21 planenalp 2023-09-08 03:16:09 +08:00 电力猫猫 |
![]() | 22 FightPig 2023-09-08 03:26:28 +08:00 刷了 op 后很简单的,可能和地区有关,我设置了固定 ip ,一直没改过,一直用 |
25 persistpot 2023-09-08 09:33:03 +08:00 iptv 这个东西该淘汰了吧,直接在线看视频不好吗?整这么复杂 |
26 YGBlvcAK 2023-09-08 09:33:15 +08:00 有支持 FCC 的 iptv app 吗? |
27 xhcnb 2023-09-08 11:03:25 +08:00 @persistpot #25 一是电视台直播, 一是电视台节目回看, 这两个功能我家是刚需, IPTV 还是有存在意义的, 而且每月只要 10 块钱, 还没有广告, 比那些视频 app 良心多了 |
![]() | 29 JensenQian 2023-09-08 11:29:57 +08:00 via Android 我自己抓了下,我这移动,我疫情前的抓的,他现在还能用,不过家里现在也没人看电视 |
30 lyu594 2023-09-08 12:24:12 +08:00 软硬通吃!路由器 IPTV 革新设置指南 https://www.bilibili.com/video/BV1524y1h7Wq/?share_source=copy_web&vd_source=cf341dfb1428d1a989240363afd9cb28 我是广西电信,用的这个 up 主的方案实现的,我折腾了才知道 iptv 能单播和组播,需要光猫 vlan 设置对了才行。 我电视盒子直接连光猫,测过换台速度,比广电还快,不知道这个 FCC 功能是不是内置在电视盒子(TY1608),我用 potplayer 播放就要缓冲 3 秒左右。 |
![]() | 31 jsq2627 OP |
32 huihuilang 2023-09-08 18:47:31 +08:00 via Android 我觉得最麻烦的不是网线,而是光猫改桥接了 iptv 用不了了,不知道怎么解决 |
![]() | 33 jsq2627 OP @lookookok 要看交换机是否支持 IGMP snooping 了。傻瓜交换机没有标明的话很难区分。 |
![]() | 34 jsq2627 OP |
![]() | 35 rebecca554owen 2023-09-09 09:44:34 +08:00 via Android 移动的魔百盒用网络就可以直接看。 |
![]() | 36 jsq2627 OP @YGBlvcAK @lyu594 我今天在 rtp2httpd 上魔改了下,增加了 FCC 的实现 https://github.com/stackia/rtp2httpd rtp2httpd 和 udpxy 类似,是一个组播转单播流工具 可以用类似这样 http://10.0.0.2:5140/rtp/239.253.64.120:5140?fcc=10.255.14.152:15970 的 URL 作为播放地址,将能够从 FCC 服务器上拉取单播流来加速初始播放。具体 fcc 地址要自己从所在地 iptv 上抓包了 |
![]() | 37 Rinndy 2023-09-14 15:05:18 +08:00 via iPhone 这个和 udpxy 有什么区别吗,还有能把那个插件弄到 op 软件包里吗。 |
![]() | 38 jsq2627 OP @Rinndy 有 FCC 服务器时可以快速换台,效果见 github 里的视频 暂时仅供高阶玩家自行交叉编译跑在 openwrt 上 |
![]() | 40 cpstar 2023-09-15 22:34:04 +08:00 折腾了半天,igmp 也没有转发进来。也就是方法 5 没有搞定。不知道哪里该怎么搞 |
![]() | 41 jsq2627 OP @Rinndy 关键词 ChannelFCCIP 例子: https://gitee.com/badboy911/China-Telecom-ShangHai-IPTV-list/blob/master/频道清单.txt |
42 l123456789jy 2023-11-10 17:54:48 +08:00 现在的路由都支持,IPTV 口了 ,根本没这么麻烦,教程地址: |
![]() | 43 pensz 2023-12-23 15:45:33 +08:00 @l123456789jy 请教下,这个原理是什么呢,iptv 和上网的流量都没有 vlan tag ,路由器和光猫是怎么区分这个流量的呢。 |
44 l123456789jy 2024-02-20 13:41:22 +08:00 @pensz 小米这款路由支持自动识别 iptv ,还有光猫其实一直是网络和 iptv 都是一起发送的,并不区分网口。 |
46 ttizard 2024-04-03 08:34:35 +08:00 重启 IGMP 故障排除又可以用了,直播源没问题~ |
![]() | 47 uioprr 269 天前 有 docker 打包好的 FCC 吗 |
51 hjj0529 235 天前 via iPhone 不用 fcc 的时候花屏,用 udpxy 正常,斐讯 n1 |
52 xxglive 55 天前 via Android 大佬,github 上这个项目怎么验证他已经部署成功了,如果是 openwrt 上安装 udpxy ,可以通过加 4022 端口号查看状态,但是咱们这个项目部署完之后访问 5140 端口号,网页上提示没有配置 @jsq2627 |
53 xxglive 19 天前 via Android 大佬能回复一下吗 |