众所周知 IPTV 因为是一个独立网络,会给家里网络布线带来一些不便。例如很多人家里弱电箱到客厅只有一根网线,如果想要光猫放弱电箱,IPTV 、路由器、游戏机等放客厅,那么就会有麻烦。一般常用方式要不是把一根 8 芯网线分成两根 4 芯降速到 100M 跑,要不是用带有 VLAN 管理的交换机实现单线复用。
这里我提供另一个思路,即把 IPTV 网和宽带网同时接入到主路由器上,然后用静态路由来分流。这个方案好处是不再依赖 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
xiaozecn 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 1
https://github.com/ruur/cmcc-iptv 网上教程一大把,现在新的路由器都有 iptv 功能,没有就刷 openwrt 吧
|
13
sunulin 2023-09-07 21:32:05 +08:00 via iPhone
前几天还想这个,我这主路由器是 ikuai ,也可以通过光猫把两条线查到 ikuai 上实现
|
14
youx 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 直播源
|
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 334 天前
@l123456789jy 请教下,这个原理是什么呢,iptv 和上网的流量都没有 vlan tag ,路由器和光猫是怎么区分这个流量的呢。
|
44
l123456789jy 275 天前
@pensz 小米这款路由支持自动识别 iptv ,还有光猫其实一直是网络和 iptv 都是一起发送的,并不区分网口。
|
46
ttizard 233 天前
重启 IGMP 故障排除又可以用了,直播源没问题~
|