单线融合宽带iptv,不需vlan、丢掉光猫,任意设备看iptv【浙江电信】【Openwrt】

您所在的位置:网站首页 电信iptv机顶盒安装app 单线融合宽带iptv,不需vlan、丢掉光猫,任意设备看iptv【浙江电信】【Openwrt】

单线融合宽带iptv,不需vlan、丢掉光猫,任意设备看iptv【浙江电信】【Openwrt】

2023-07-31 04:05| 来源: 网络整理| 查看: 265

前言

    因为家里的弱电箱在卧室,通往各个房间的网线也都在弱电箱,所以主路由器基本只能放在弱电箱里,而电信的iptv跟宽带是两根线而且到客厅只有一根网线,为了保证电视/机顶盒有稳定的网速(千兆),但这样就必须在iptv和宽带之间二选一,除非装修前提前多埋线,相信大部分人都会存在这个纠结。我的折腾之路也由此开始~

 效果先演示下:

在看别人改造方案的时候,了解大致有几种选择:

    1.分线器方案,只需要买一对分线器,将一根八芯的千兆线改成2跟4芯的百兆网线就行了。该方案成本极低,淘宝20块钱就能搞定,但缺点是无法享受原来的千兆网络,连到客厅的宽带只有百兆。

    2.光猫 宽带+iptv 两根线(光猫支持融合一根线的话就是一根,不支持的话只能两根)到主路由器里划分vlan,然后在需要机顶盒的房间部署一个支持vlan的交换机,把宽带和iptv信号拆分出来,便可正常使用iptv和 千兆网络。该方案优势是复用网络,千兆宽带基本不受影响。缺点是每个想看iptv的位置都要准备一个支持vlan的交换机,看电视依然需要机顶盒

    3.宽带+iptv融合进宽带网络,网关处配置udp代理,局域网内通过http请求访问代理获得视频流,可以在任意支持该协议的软件中播放iptv。缺点是需要网关支持udp代理,iptv播放信息需要通过抓包获取,比较麻烦。

    4.宽带+iptv融合进宽带网络,网关处配置igmp代理,局域网内通过igmp组播信号的方式获得视频流,可以在任意支持该协议的软件中播放iptv。缺点是需要网关支持igmp代理,iptv播放信息需要通过抓包获取,比较麻烦。

    起初的问题是如何解决一根线满足iptv和宽带问题,但后来发现甚至可以完全不需要机顶盒,iptv播放直接统一到一个电视盒子或电视自带系统里,那我当然选择可以直接放弃机顶盒的方案啦~

    选择的实现方案是方案3,方案4在实操的过程中容易出现广播风暴造成网络异常(从别人方案的反馈来看),方案3就是一个纯http转udp协议的代理,逻辑清晰没有太多的风险点当然选它啦。额外需要:一个Openwrt的路由器(支持抓包、dhcp option60鉴权、udpproxy功能的其他路由器亦可)。

上个最终效果图

方案实现—抓包

    登陆光猫管理员账号,查看iptv和宽带是否可以融合在绑定在同一网口,刚开始调研vlan方案时觉得很遗憾,我的光猫只有两个口且不能把光猫和iptv绑定在一个口里。但后来发现这样走方案3、方案4时反而很简单。

    首先我已知电信iptv的连接方式是dhcp鉴权,有些其他地方不需要鉴权或者直接使用ppoe拨号的方式,虽然我的方案是针对dhcp鉴权但他们的实现原理类似。如果iptv提供方可以直接提供拨号或者登陆iptv的账号密码那我们就可以直接在路由器上配置对应的连接方式。但这里运营商应该不会把信息给出,所以需要我们自己通过抓包的方式了解授权的实现方式。

    因为我使用的是openwrt,登陆路由器之后可以使用tcpdump命令直接抓取对应端口的数据包,所以不需要单独给路由器划分vlan或者配置端口镜像等复杂的操作,直接把光猫出的iptv线和机顶盒的网线连到两个lan口(路由器默认的wan不接线,当交换机使用)这个时候相当于iptv机顶盒直接和光猫iptv口连接。这里只需要我们记住机顶盒连接的是哪个网口。这里我以连到下图的eth2举例。(电脑实际连的eth3,忘了画出来)

线路连接好以后,可以先确一下机顶盒是否可以正常登录看电视,如果登陆没问题,则先断电备用。

电脑通过ssh登陆openwrt路由器(电脑实际连的eth3,图里忘了画出来)

执行命令开始抓包: tcpdump -i eth2 -w dhcp.pcap

给机顶盒上电启动,让机顶盒完成登陆进入主界面

 机顶盒登陆成功后,切到电脑ssh,执行ctrl+c,停止抓包,数据包会被保存在dhcp.pcap文件中

抓包完成把数据包拷贝到电脑里备用。

在电脑里用wireshark软件打开数据包,搜索protocol=dhcp的请求,可以看到两条路iptv机顶盒发出的请求,点开DHCP request请求,下方包的详细信息里dhcp协议中有

option 61(客户端mac地址)展开后,在Client Mac Address点右键复制值,保存备用

option 12(HostName)展开后,在Host Name点右键复制值,保存备用

option 60  (Vendor class)展开后,在Vendor class identifier这行上,鼠标右键选择复制----as a Hex Stream 保存备用

网络鉴权信息抓取完毕,同时在抓包数据里搜索http协议,电信的http协议中会明显的看到一些初始化鉴权和获得播放列表的请求,比如下面这个请求,看名字就知道获取频道列表~

http://***/EPG/jsp/getchannellistHWCTC.jsp

打开response返回数据一看,好家伙~!保存备用

方案实现—网络配置

至此抓包获取信息工作完成,把网络接线恢复到最终状态

    回到Openwrt配置里选择新建接口,协议选择DHCP客户端,接口选择连接光猫的接口名。我这里以eth2为例,后选择保存

    在基础配置里,添加请求DHCP时发送的主机名(上面抓包数据中的HostName)

在高级配置里,使用网关跃点填入一个比较大的数字,我这里写20

重设MAC地址这里,填写上面抓包数据的客户端mac地址

保存并应用设置后,再进入你的 WAN 接口设置,将它的 网络跃点设置为 1(比前面配的20小即可),否则你会无法正常使用互联网。

最后再ssh登陆到Openwrt路由器上,修改/etc/config/network中的IPTV参数

找到配置文件中iptv接口的dhcp配置(搜dhcp即可)在配置中新增一行:

option sendopts '0x3c:****'

****的内容为上面抓包中获得的Vendor class identifier(一长串字符串),保存退出后回到openwrt,重连iptv接口,稍等一会如果看到有被分配了私网ip地址就说明配置成功了!

方案实现—udpxy配置

可以选择登陆到Openwrt路由器上命令行安装,安装命令:

opkg install udpxy luci-app-udpxy

或者直接在管理网页安装udpxy、luci-app-udpxy 

安装好后进入udpxy管理页面配置:

Bind IP/Interface,可以直接配置本地lan的地址或者lan的接口名(br-lan)

端口只要不被占用即可,随意写

Source IP/Interface,填写电信iptv连接openwrt的接口,我这里是et2

最大连接数是你允许同时对多少个客户端进行代理(同时几个设备看iptv电视)

测试效果

检查udpxy状态,本地访问:

http://[br-lan的ip]:[绑定端口]/status

我以路由器地址为192.168.1.1 绑定端口为9999为例

http://192.168.1.1:9999/status

网页会显示udpxy当前的连接状态,如果有显示状态说明正常(我截图的时候有人正在看电视,所以会显示active client为1,且有具体内容)

     接下来我们翻出前面保存的抓包文件,找到这条请求的返回数据(我这个数据我这里只针对杭州电信):http://***/EPG/jsp/getchannellistHWCTC.jsp

    这个请求抓到的数据包可以明确的看到电台列表,这里只举一个例子,搜索igmp可以看到这样的数据:

ChannelURL="igmp://233.50.201.118:5140|rtsp://115.233.41.137/PLTV/88888913/224/3221228078/10000100000000060000000002460690_0.smil******"

    这里的igmp就是电视台的组播地址,我们通过这个ip端口号就能看iptv

这里需要调整下url的格式

A.抓包里的  igmp://233.50.201.118:5140

B.你路由器的udpxy访问路径为  http://192.168.1.1:9999/status

(以路由器地址为192.168.1.1 绑定端口为9999为例)

A+B组合后即为软件播放iptv使用的地址:

http://192.168.1.1:9999/udp/233.50.201.118:5140

http://address:port/udp/mcast_addr:mport/

在电脑使用VLC软件、添加链接即可进行播放。来跟我一起丢掉机顶盒吧~

关于频道、台标、和电视节目单的配置问题,后续还计划再出一篇专栏讲一下,感兴趣的观众老爷可以点个关注收藏支持一下,谢谢大家!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3