猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

2024-03-20 12:01:31 8点赞 52收藏 14评论

前段时间把家里光猫换成了猫棒,加了一台兮克SKS7300-8GPY4XGS交换机,2.5G局域网是调试好了,详见上一篇分享,因为路由器是TP-LINK原厂的系统,没办法安装udpxy,所以IPTV一直没调,最近看到路由器官方已经支持刷入开源固件了,周末在家刷过去试了试,结果翻车了,无线信号严重不稳定,又回到了原厂系统的怀抱。但是又勾起了把IPTV调好的想法,前前后后折腾了一个多月,终于调好。于是记录下,大家如果有同样的网络环境可以参考,少走弯路。

另外抄作业的基础是你已经知道怎么抓包,怎么生成m3u文件,如果不会的话网上找教程看看,以下的内容主要还是特定网络环境的避坑指南,当然有任何问题也欢迎留言交流。

核心就是使用群晖的两个网口,docker安装msd_lite将IPTV的组播转到内网,然后内网所有的设备就都可以看IPTV了,也可以通过emby或公网IP+端口转发在外网观看。

网络结构是这样:

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

下面是一些关键点

首先是猫棒,网上很多教程,这里就不贴图了,配置好猫棒后记下上网和IPTV的VLAN ID,比如我的上网VLAN ID是101,IPTV VLAN ID是102,接下来配置交换机:

登陆到SKS7300-8GPY4XGS的web管理,在VLAN配置中,新建两个VLAN(注意VLAN ID要和设置猫棒时记录的一致):VLAN ID:101,名称:WAN;VLAN ID:102,名称:IPTV。

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

接下来在端口VLAN中将xe1链路类型设置为trunk,默认VLAN ID为101,配置VLAN ID为101-102;ge1链路类型不变(access),可接受的帧类型设置为vlan-untagged,VLAN ID设置为101;ge4链路类型不变(access),可接受的帧类型设置为vlan-untagged,VLAN ID设置为102。

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

如上设置后:xe1插猫棒,ge1连路由器WAN口正常拨号上网,ge4可接运营商机顶盒看IPTV,剩余端口既为LAN口,可接电脑,NAS等设备。

如果不需要内网看IPTV到这里就可以结束了。

需要内网看IPTV的同学继续往下看,接下来是群晖的配置。

群晖首先将网卡1接入交换机ge4,网卡2接入交换机ge5,网卡2设置自己局域网的一个固定IP比如我设置的是192.168.200.30,然后这里有两个办法设置网卡1:

第一种:把运营商送的机顶盒接到ge4打开后进入设置记录下获取到的IP信息,然后将群晖网卡1设置为静态地址,照着盒子里的IP信息填入。

第二种:网卡1设置为自动获取IP,再将它的MAC地址修改为机顶盒的MAC地址,SSH进入群晖:

先sudo -i 获取权限

然后使用ifconfig查看网口的名称

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

我这里是ovs_eth0,接下来用以下三条命令修改MAC地址

ifconfig ovs_eth0 down

ifconfig ovs_eth0 hw ether XX:XX:XX:XX:XX:XX #替换为你机顶盒的MAC地址,字母全部大写

ifconfig ovs_eth0 up

修改后应该就能看到网卡1自动获取到了IP地址。

接下顺手调下igmp版本,以及关闭反向路由验证(我的群晖应该本身就是关闭的,不过建议还是三条命令都输入一遍,以防万一)

输入(注意:ovs_eth0 替换为你自己查到的网口名称)

sysctl -w net.ipv4.conf.ovs_eth0.force_igmp_version=2

sysctl -w net.ipv4.conf.ovs_eth0.rp_filter=0

sysctl -w net.ipv4.conf.all.rp_filter=0

再输入, 保存生效

/sbin/sysctl -p

/sbin/sysctl -w net.ipv4.route.flush=1

接下来登陆到群晖打开Container Manager下载和运行msd_lite,它的功能和udpxy一样但性能更好。

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

下载过程中先准备一下config文件,在这里下载https://github.com/rozhuk-im/msd_lite/tree/master/conf下载后在群晖里的docker目录新建msd_lite目录把文件放进去,并打开拉到最下面将下图红框的网卡名称改成你的网卡名称并保存

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

准备工作就绪后回到Container Manager运行刚刚下载的msd_lite,注意将/etc/msd_lite.conf映射到本地刚刚保存的msd_lite.conf文件,网络需要选择host,参考下图:

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

到这里配置工作就全部结束。对了,修改MAC的命令群晖重启后会失效,我的解决办法是把它设置为开机的计划任务。

接下来就是如何使用,首先抓包搞定直播源,拿到直播源后即可转换为以下格式进行播放,比如我的:

http://192.168.200.30:7088/rtp/239.11.0.65:5140

测试OK后,按照格式生成m3u文件,家里是苹果全家桶,所以用的是aptv这个软件,苹果全平台都有,下面是手机上的效果。Android的话使用TiviMate。也可以docker装个xteve让emby也能播放,还能定时录制。

猫棒+可网管交换机+群晖实现组播转换,内外网全平台观看IPTV

好了就到这里,文中的文件如果下载不到可以留邮箱,然后文中是四川移动的IPTV,如果刚好有四川移动的同学需要m3u文件的也可以留邮箱。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
14评论

  • 精彩
  • 最新
  • 抓包太麻烦了,还要定时抓吧,不然更新就失效了?我是想家里抓包iptv,然后投放在ddns emby上,再让我爷爷家能看

    校验提示文案

    提交
    我抓的地址几年没变了,不知道别的地方是怎么样的

    校验提示文案

    提交
    收起所有回复
  • 另外没交换机,只有openwrt不知道怎么设置这个vlan

    校验提示文案

    提交
    openwrt 也可以,你搜下 openwrt+iptv,很多教程

    校验提示文案

    提交
    坐标江苏,路由桥接,什么都不用改,Iptv的线直接接到群晖就可以

    校验提示文案

    提交
    收起所有回复
  • 大佬好,能加个微信详聊吗,想请教一点问题

    校验提示文案

    提交
    留不了联系方式的哇 [喷血]

    校验提示文案

    提交
    我也是四川移动,大佬你给个m3u,我看看我抓到全不,1014112816@qq.com

    校验提示文案

    提交
    收起所有回复
  • 请问您这个iptv的vlan 和iptv组播vlan是合一了吗,北京联通的是是iptv 3964和组播4000是分开的,这种的不知道怎么弄,一直没有成功

    校验提示文案

    提交
    请问下你的解决了不,我们这边也是分开的,弄了好久也是没成功

    校验提示文案

    提交
    没有合一呀,各是各

    校验提示文案

    提交
    收起所有回复
  • 必须来点个赞,搞了一天猫棒+交换机的IPTV终于在这篇文章里面找到方法了。

    校验提示文案

    提交
  • 必须点赞,之前一直用虚拟机开Op来udpxy转发的,按照教程,终于丢掉虚拟机了,而且也不卡了

    校验提示文案

    提交
  • 你们有没有遇到 udprxy 和msd_lite两种都遇到过 iptv 直播代理时间长了以后 就会蓝屏,重新拨号,就能恢复正常,你们知道什么原因么?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
52
扫一下,分享更方便,购买更轻松