小白的IPTV折腾教程--双网融合/IPTV共享

本章节要讲的目的:

  1. 互联网 + iptv 通道双网融合,解决弱电盒到电视机只有一根网线的问题
  2. iptv 节目的共享给智能电视、安卓盒子
  3. 移动设备通过 wifi 观看 iptv 节目

一、IPTV使用路由器单WAN口验证

1、由于各地、各运营商 IPTV 不同,导致 IPTV 的认证模式也不同。比方电信多是 PPPOE 认证获得一个 10/172 开头的内网 ip。开启一个10M 的 IPTV 通道,和互联网带宽分离。移动多是 DHCP 从光猫获取,获得一个 192 开头的内网 ip。还有一种 IPoE 认证方式,DCHP 分配iptv 给盒子,但是里面一般会多一个 option 的鉴权,比较麻烦。
正因为 iptv 众多的模式,所以为了降低我们融合的难度,我建议先用路由器单 wan 口来测试 iptv 能否正常观看。没有问题了,我们再来调试双 wan 融合。

2、路由器系统的选择
因为我们的终极目标是要双网融合一线,所以必须使用能多 wan 的系统。易用性很高的老毛子 padavan 固件因为不能多 wan 首先排除。其次,我们要使用 igmpproxy 和 udpxy 来转发组播信号,所以必须要能安装这两个玩意的系统。理论上讲 openwrt/lede/潘多拉/梅林/高恪固件都可以,因为我使用的是斐讯 K2P 路由器,所以我选择 openwrt/潘多拉。
需要注意的是 meal 大神的 openwrt CC 固件目前没法通过交换机设置 vlan,没法设置多 wan 口,现在还没法用于本项目,但是他的无线稳定性据说还不错。
而原版的潘多拉因为无线驱动的问题,一直在等 MTK 修复,最近潘多拉的作者 Lintel 大神终于更新了潘多拉,无线的情况有大幅的改善,所以我们以潘多拉固件为例子来讲解。
下载地址:
https://downloads.pangubox.com/pandorabox/18.07/targets/ralink/mt7621/
找到斐讯 K2P 的最新版本下载即可

3、接线
我们按以下接线
光猫 iptv 接口 —-> 路由器 wan 口
路由器 Lan 接口 —-> iptv盒子

4、路由器安装软件
系统 –> 软件包 –> 刷新列表,等待系统更新软件源地址,不过报错请检查软件源是否正确
下载并安装软件包里面写 igmpproxy –> 确认

因为潘多拉新版网站的源最近一直出于陆续更新状态,可能会发现 igmpproxy/udpxy 无法安装。
我这里提供 ipk,用 winscp 上传到 /tmp 目录下面,然后用 putty 登录,cd 进入 /tmp 目录
请注意 24kc 是针对 7620 CPU 的,1004kc 是针对 7621 CPU 的

  • igmpproxy_0.1-8_mipsel_1004kc_dsp.rar
  • udpxy_1.0.23-9-4_mipsel_1004kc_dsp.rar
  • igmpproxy_0.1-8_mipsel_24kec_dsp.rar
  • udpxy_1.0.23-9-4_mipsel_24kec_dsp.rar

百度下载链接: https://pan.baidu.com/s/1tc1YNoOBdGm0WnknCZberQ 提取码: ph8t
备用地址A | 备用地址B |

opkg install igmpproxy_0.1-8_mipsel_1004kc_dsp.ipk
就安装上了 igmpproxy

下载并安装软件包里面写 udpxy –> 确认
下载并安装软件包里面写 luci-app-udpxy –> 确认
如果在已经安装软件列表中没有找到 mwan3,那么我们就要安装一下
下载并安装软件包里面写 mwan3—->确认
下载并安装软件包里面写 luci-app-mwan3 –> 确认
下载并安装软件包里面写 luci-i18n-mwan3-zh-cn –> 确认

5、以 pppoe 拨号的 iptv 来配置路由器
网络–>接口–>找到 wan–>修改–>切换 PPPoE 协议–>填写 iptv 盒子的 pppoe 账号密码–>保存应用

6、配置 igmpproxy
用 winscp 登录路由器,找到 /etc/config ,找到 igmpproxy,修改如下

config igmpproxy
    option quickleave 1

config phyint
    option network wan
    option direction upstream
    list altnet 0.0.0.0/0

config phyint
    option network lan
    option direction downstream

7、配置防火墙
用 winscp 登录路由器,找到 /etc/config ,找到 firewall,在最下面添加

config rule
        option target 'ACCEPT'
        option src 'wan'
        option name 'Allow-IGMP'
        option proto 'IGMP'

config rule
        option target 'ACCEPT'
        option src 'wan'
        option proto 'udp'
        option name 'Allow-UDP-igmpproxy'
        option family 'ipv4'
        option dest 'lan'
        option dest_ip '224.0.0.0/4'

config rule
        option target 'ACCEPT'
        option src 'wan'
        option proto 'udp'
        option name 'Allow-UDP-udpxy'
        option dest_ip '224.0.0.0/4'

第一条的意思是允许组播 IGMP 包从 wan 口流进到路由器
第二条的意思是允许组播视频 udp 包从 wan 转发到 lan
第三条的意思是允许组播视频 udp 包从 wan 流到路由器,由 udpxy 把组播转 http 协议发送
重启一下路由器,待 pppoe 获取到了 ip 后,开 iptv 盒子电源,iptv 盒子进入设置—->网络设置—–>把上网方式由 pppoe 改为dhcp,正常情况下,盒子直播应该就可以看了。不行的话重启一下 iptv 盒子

9、下面我们来配置 udpxy
点服务—-> udpxy
《小白的IPTV折腾教程--双网融合/IPTV共享》
勾上 启用 + Respawn + 状态
Bind IP/Interface 栏填写你的本地路由器 Lan 口 ip
端口自定义,避开一些常用端口
Source IP/Interface 填写 pppoe-wan,这个来自你接口 wan 图标下面的小字
保存应用
开浏览器,输入 http://你的路由器ip:你刚定义的端口 /status 回车

《小白的IPTV折腾教程--双网融合/IPTV共享》
此时应该就显示 udpxy 的状态了,如果没有,请检查系统进程里面是否有 udpxy 的进程。没有就检查 Bind IP/Interface 栏和 Source IP/Interface 栏是否填错了。其次检查上面设置防火墙里面 udpxy 的设置是否正确。
10、测试 udpxy
找到我们第二节课里面保存的 m3u 播放列表,用记事本打开,把 rtp://239.253.XXX.XX:XXXX 的链接替换成 http:// 你的路由器ip:你刚定义的端口/rtp/239.253.XXX.XX:XXXX 的格式,保存,拖入 vlc,应该就可以播放。
此时,udpxy 状态页面会显示是哪个 ip 在收看视频,视频来源 ip 是多少,以及当前速度

《小白的IPTV折腾教程--双网融合/IPTV共享》
如果没法播放,多半是上面的防火墙设置错误,请检查

11、关于 igmpsnooping 失效造成的 udp 风暴的处理
我们知道,组播协议有点类似一个微信群,把你拉倒 cctv1 的群里面,你就收看 cctv1 的视频流,视频流加载在 udp 连接上。换台就退当前的群拉你进另外的群。原理上谁看,就把这个视频 udp 连接转发给具体的那个端口/ip,这就是 igmpsooning 的作用。但是经过本站测试,openwrt 这个功能是失效的。造成的后果就是:一旦 Lan 里面有人开启看 rtp 的组播视频,比方开了 iptv 盒子,或者电脑用 vlc 看 rtp的组播视频,你用 wireshake 抓包会发现每一个 LAN 里面的端口都有被 239 开头的 udp 包刷屏,这就说明 LAN 里面形成了 udp 风暴,严重的时候会造成网络堵塞,路由器负载变高,死机。
解决的办法:
a、使用带 igmpsooning/igmp 侦听的网管交换机,8 口的大约 200 以内。
路由器的 LAN 只接一根线到网管交换机,其他所有的设备全部接到交换机上,这个适合端口本来就不够要加交换机的
b、不需要加交换机,那么就必须使用 udpxy 转出来的 http 协议的视频流地址来播放。这样就避免了 udp 风暴,其次手机也可以观看了。缺点是 iptv 盒子不能用了,因为他是用 rtp 组播协议播放的,一用就又 udp 风暴了。只能用安卓盒子/智能电视安装直播软件来替代了。
以上我们单 wan 口调试 ok 以后,下面就可以来双 wan 融合了。

二、双 wan 融合

1、设置交换机 vlan
网络—->交换机,此时系统已经标记了 2 行 vlan 出来了。我们点下面的 添加 按钮,新的一行 VLAN ID 我们填写 3,其他如图所示填写,需要注意的是,上面2行也有变动,要一并修改。保存应用,此时LAN4口也就紧挨着WAN口的那一个变成了新的WAN口了。

《小白的IPTV折腾教程--双网融合/IPTV共享》
2、新建接口
网络—->接口—->WAN—->修改—->基本设置,把刚才我们填入的iptv的pppoe账号密码替换成我们的互联网pppoe账号密码,保存
再到 高级设置—->使用默认网关勾上,使用网关跃点 填写 40 ,保存应用。

网络—->接口—->左下角 有个添加新接口按图填写,接口名称iptv,注意小写。新接口的协议选择pppoe,包括以下接口 选刚才我们在交换机新建的vlan eth0.3,提交

《小白的IPTV折腾教程--双网融合/IPTV共享》
3、配置新建的接口
网络—->接口—->IPTV—->修改—->基本设置,填入的iptv的pppoe账号密码,保存
再到 高级设置—->使用默认网关勾上,使用网关跃点 填写 41 ,保存。

《小白的IPTV折腾教程--双网融合/IPTV共享》
再到 物理设置—->检查接口是否选择的是交换机 VLAN: “eth0.3” (iptv)。

《小白的IPTV折腾教程--双网融合/IPTV共享》
再到 防火墙设置—->创建/分配防火墙区域 不指定/新建 填写 iptv ,保存应用

《小白的IPTV折腾教程--双网融合/IPTV共享》
4、防火墙的设置
网络—->防火墙—->iptv 勾上 IP 动态伪装 MSS 钳制 ,保存

《小白的IPTV折腾教程--双网融合/IPTV共享》
点iptv后面的修改,下面的端口触发 把 允许从源区域转发:LAN 勾上,保存应用

《小白的IPTV折腾教程--双网融合/IPTV共享》
5、修改 igmpproxy,udpxy 防火墙设置
用 winscp 登录路由器,找到 /etc/config ,找到 firewall,找到我们刚才添加的内容把里面 wan 修改为 iptv:

config rule
        option target 'ACCEPT'
        option src 'iptv'
        option name 'Allow-IGMP'
        option proto 'IGMP'

config rule
        option target 'ACCEPT'
        option src 'iptv'
        option proto 'udp'
        option name 'Allow-UDP-igmpproxy'
        option family 'ipv4'
        option dest 'lan'
        option dest_ip '224.0.0.0/4'

config rule
        option target 'ACCEPT'
        option src 'iptv'
        option proto 'udp'
        option name 'Allow-UDP-udpxy'
        option dest_ip '224.0.0.0/4'

6、重新配置 igmpproxy 和 udpxy
用 winscp 登录路由器,找到 /etc/config ,找到 igmpproxy,把 wan 修改为 iptv

config igmpproxy
option quickleave 1

config phyint
option network iptv
option direction upstream
list altnet 0.0.0.0/0

config phyint
option network lan
option direction downstream

点服务—->udpxy
Source IP/Interface 填写 pppoe-iptv,这个来自你接口 IPTV 图标下面的小字
保存应用

7、负载均衡 /mwan3 的配置
其实 igmpproxy 里面已经定义了,所有 LAN 口里面rtp组播请求都会被转发到 IPTV 的那个 WAN 口,所以 mwan3 不用安装都已经可以直接用了。我们这里配置 mwan3 的意义在于:IPTV 盒子使用回放、时移、点播的时候能走 IPTV 给的 10M 带宽,不分享互联网带宽,防止时移、点播走互联网带宽不能使用
网络—->负载均衡
如图设置,新建接口 wan,iptv

《小白的IPTV折腾教程--双网融合/IPTV共享》
《小白的IPTV折腾教程--双网融合/IPTV共享》
《小白的IPTV折腾教程--双网融合/IPTV共享》
《小白的IPTV折腾教程--双网融合/IPTV共享》
《小白的IPTV折腾教程--双网融合/IPTV共享》
《小白的IPTV折腾教程--双网融合/IPTV共享》

其中,192.168.5.2 是我在路由器中给 IPTV 机顶盒设置的静态 DHCP 的 ip

保存应用
重启路由器,等待两个 wan 口都拨号完毕

iptv 盒子开机看直播频道,电脑开 speedtest 测速。我们在路由器的
状态—>实时信息—->流量里面,可以在 pppoe-wan 和 pppoe-iptv 里面观察到 2 波流量,iptv 标清在 400K/s 左右,高清在 1M/s 左右。这是说明我们的融合就成功了。
接着就可以把 iptv 盒子淘汰下来了,一根线就把互联网 + iptv 数据传递给安卓盒子/智能电视了。手机/平板直接可以用 mxplayer 使用 udpxy 的地址来观看视频了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

  1. David David 说道:

    博主有个问题,某国外电视直播软件(需科学上网),用普通路由器+酸酸乳可以,用老毛子路由器(四种模式都尝试)不行,是UDP的问题吗?

  2. 淘子 说道:

    我也准备k2p扔到弱电箱,那可以不用他的wifi了

  3. ddi滴滴滴破口大骂 ddi滴滴滴破口大骂 说道:

    电视端用什么软件播?

  4. 购秀时间 说道:

    生命在于折腾,可惜时间有限。

  5. 更省APP 说道:

    界面好熟悉 是开源的路由器os?

  6. 乱填的昵称 乱填的昵称 说道:

    igmpproxy 和 udpxy都没有安装,也可以用iptv机顶盒无线看电视啊,这是什么情况

  7. 贵安服贸 说道:

    :smile: :smile: :smile: :smile: 多谢博主分享

  8. 网络游客 说道:

    摩拜下楼主,这个组网方案用1条iptv拨号后同时在线可以几个终端观看IPTV频道(是不是同时播放超过8个就卡了,因为电信给的IPTV通道带宽只有10M,又是组播)

    1. 666 666 说道:

      10m可带不了8个台同时看,应该是100m的iptv端口。