本帖最后由 weishu2002 于 2023-12-8 10:59 编辑
家里网络拓扑大概是图里这样,把运营商的光猫换成了华为的B610当主路由用,DDNS在光猫上做的,NAS跑的是Windows系统,用Hyper-V跑OpenWrt的虚拟机,其实不算旁路由,就当个可以跑Docker的Linux应用服务器用,AP是红米AX6000连的光猫其他口。当时开电信宽带的时候送的机顶盒,一直没人看,最近在论坛里看到可以把组播电视信号转单播的教程,就试了一下,坑还不少,分享一下,供大家讨论。 第一步是分析逻辑与流程
1.1机顶盒信息,先登上机顶盒看了一下,显示是DHCP获取到的地址,记下机顶盒有线网卡的MAC地址再说。 1.2抓取报文,看论坛里想了各种办法,我都没有用,直接在NAS上插了一块PCIE的双口网卡,一个口连机顶盒,一个口连光猫,再在Windows系统下把两个网卡(ETH1和ETH2)桥接起来。打开wireshark直接在Windows下抓桥接口上的报文,然后机顶盒开机,直到看到CCTV1,停止抓包,然后把抓到的所有包存成文件。 1.3 分析DHCP报文,打开抓包文件,找到DHCP Discover这条。
打开之后一共五层,前四层都不重要,直接点开第五层(Dynamic Host ConfigurationProtocol),就是DHCP的主要内容。 这里能看到,根据MAC地址的特征,识别到设备应该是中兴的,其中option(12)和option(60)的数据应该是用于身份鉴别的,就是所谓的IPOE,填不对DHCP服务端不分配IP。
option(12)是host name长度32字节,都是可见字符,先复制下来。能看到最后12字节和MAC地址是一样的,估计DHCP服务端会验证这个。 option(60)就没有option(12)这么友好了,是一段长度61字节的十六进制数据,右击”复制->as Hex Stream”,保存待用。 1.4 分析组播视频流,下面都是UDP报文,看Dst地址是239.49.8.19,DstPort端口是9614。 第二步是用openwrt模拟机顶盒,主要是两点,一是网卡mac地址要和机顶盒一样,二是发出的dhcp包要和机顶盒一样。 2.1首先把网卡ETH1映射到openwrt系统里,把名字设置为IPTV,模式设置为dhcp。Hyper-v虚拟机可以设置网卡的mac地址,openwrt也可以通过其他方式来修改mac地址。 2.2然后是把option(12)和option(60)配置进去,打开/etc/config/network,找到eth1的配置。 增加option hostname 把之前复制的option(12)的内容粘贴进去; 增加option sendopts 先写0x3c:,然后把复制的option(60)的内容粘贴进去; 如果需要改mac地址,就再增加一行optionmacaddr ’xx:xx:xx:xx:xx:xx’然后把之前记下的mac地址把xx替换掉。 2.3最后重启路由器,登录查看,如果获取到IP地址,基本就说明成功了。 因为这个openwrt的虚拟机是旁在边上给内外网提供服务的的,所以设置的是LAN口模式,ETH1也设置为LAN口。
这里说两点,一是可以用爱快,论坛里有教程,这个设置确实很方便,UI界面上就能搞定,但是只能用udpxy实现,爱快组播单播本地IPTV分享经历。openwrt还是挺麻烦的,需要到后台配置。 二是我用的是虚拟机,如果用实体路由器的话基本也是这个逻辑。
第三步是安装配置服务插件
3.1 msd_lite插件是用于组播转发把,upd视频流转为http协议的。设置比udpxy要简单,不用开igmpproxy,直接勾选启用,把源接口设置为IPTV就可以了。 这时候就可以通过访问eth0的地址来看电视了。 地址构成是这样,eth0的地址+msd_lite的端口+协议+组播地址+组播端口
可以在论坛里搜一下本地的频道,把多个频道地址合成一个m3u文件用于播放。 另外还有两个问题希望有大佬可以指点一下。 一是我写的这个模式可以单线复用吗?可以的话怎么设置。
二是Windows、Android和智能电视上有什么好的播放软件推荐吗?
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|