在之前的《群晖DS718+安装虚拟机实现联通IPTV转发》中,说明了如何通过虚拟机安装catwrt+udpxy来实现联通IPTV的转发。
但这个安装方式比较复杂,重启群晖设备时总会提示虚拟机还在运行也比较恼人。在网络上查看了各种方式后,发现使用docker安装msd_lite的方式非常方便,docker资源占用也更加节省。本文记录了配置过程,以供大家参考。
首先介绍网络拓扑环境

如上所示,DS718+的2个网口,第一个网口直接与路由器的LAN口相连,第二个网口与光猫的IPTV口链接,2个网卡没有做任何绑定。路由器位于网路中枢,WAN口与光猫连接实现所有设备公网上网,对内通过有线及无线与所有家庭网络设备相连。
这种IPTV直接与DS718+的连接方式,完全不需要对路由器进行任意配置,简化了实现方式。实际上,DS718+还通过USB网卡实现了2.5G与路由器互联,但与本文实现IPTV无关,因此在拓扑图中省略,简化图形说明。
群晖的docker,需要安装Container Manager,访问镜像仓库,目前国内访问docker需要配置镜像服务器,或者解决网络连接问题,这里不展开说明。

输入msd后找到tinyserve/msd_lite,双击下载,然后在左侧映像中选中tinyserve/msd_lite,点击运行。

注意选中自动重新启动,这样DS718+重新启动时,可以自动启动docker,然后选择下一步。

端口点击新增,输入7088端口,msd_lite使用7088对外导出视频,因此需要设置映射。
需要点击添加文件,将一个配置文件,映射到/etc/msd_lite.conf。这一步非常关键,它向docker指明了DS718+哪个网口链接的IPTV。
配置文件可以在git中获取,网址为 https://github.com/rozhuk-im/msd_lite/tree/master/conf,在该网页下载msd_lite.conf

用文本编辑器打开该文件,找到vlan777,将这个字符串修改为DS718+用于连接IPTV的网络设备名。

在联通的光猫中,IPTV的DHCP经常将IP分配为10开头的IP。因此通过ssh连接DS718+后,输入ifconfig,找到IP为10.xxx.xxx.xxx,可以看到不同设备的IP。在我的设备里,IPTV的IP为10.120.xxx.xxx,网络设备名称为ovs_eth1。
将这个名称填入到刚才的配置文件中,保存.

这个文件就是刚刚映射的msd_lite.conf

在网络类型中,务必选择host,然后点击下一步。
此时容器中可以看到已经启动运行了该镜像。
下面需要获取IPTV的m3u列表。这里直接摘抄之前的文档仅供参考。
”直接使用github上别人做好的。我使用的是北京联通IPTV,在不同地区不同运营商的播放列表不同,因此需要自行查找合适的源
https://github.com/qwerttvv/Beijing-IPTV


复制内容到记事本,编辑,选择替换

上面填写192.168.123.1:23234
下面填写192.168.2.101:7088,其中192.168.1.201是DS718+在路由器下的内网IP,7088是msd_lite的工作端口
点击全部替换,所有地址都被替换完成

保存,扩展名为m3u
将这个m3u拖进VLC中,测试验证可播放,说明设置成功

至此,全部搞定。
据说msd_lite的占用比udpxy略低,我自己测试花屏的概率也比udpxy略低,完美搞定!