找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7634|回复: 6

【转】MWAN指定IPTV流量出口

[复制链接]
发表于 2017-11-16 20:42 | 显示全部楼层 |阅读模式
本帖最后由 鲲翔 于 2017-11-16 20:48 编辑

http://www.jinghuasoft.com/smthview.jsp?board=DigiHome&id=583709

发信人: pheyx (), 信区: DigiHome
标  题: 北京联通光猫桥接下,IPTV和第三方App共存免切换网络的设置教程
发信站: 水木社区 (Fri Jun 17 22:03:43 2016), 站内
  
北京联通IPTV机顶盒破解后可以安装各种视频App,但在光猫桥接的情况下IPTV和App不能同时使用。本文通过设置多WAN的方式来解决这个问题。
  
原理:用mwan3在路由器上设置多wan,pppoe(连接到光猫lan1)和iptv dhcp(连接到光猫lan4),根据目的ipset来决定走哪个wan接口,通过一个脚本来侦听机顶盒所要连接的目标ip,并用ping来测试:如果在路由器上ping不通这个ip,就说明这个ip属于iptv的专网ip,并把它加入到名为iptv的ipset里,然后mwan3把这个set相关流量的出口都切换为iptv dhcp这个wan口,同时其他流量还是走pppoe。
  
实现步骤:
  
1.破解机顶盒并安装App(这个根据你的机顶盒的型号在网上找教程)。
  
2.光猫设为桥接模式。
  
3.需要一个刷成OpenWrt的路由器,且路由器交换芯片支持Vlan(检查方法:看Network菜单下有没有Switch的菜单项)。光猫lan1(Internet)接到路由器的wan口,把路由器的一个lan口设成单独的vlan,untagged模式,然后接到光猫的lan4口(IPTV口)。在路由器上新建一个wan,名称是iptv,物理接口选刚才新建的vlan接口,设为DHCP模式,防火墙区域设成wan。
  
4.安装所需的软件包:

  1. opkg update && opkg install mwan3 ipset igmpproxy
复制代码


  
5.创建名为iptv的set,在终端输入:

  1. mkdir /etc/ipsets
  2. ipset create iptv nethash
  3. ipset save iptv > /etc/ipsets/iptv.set
复制代码


   创建恢复ipset的开机脚本/etc/init.d/ipset

  1. #!/bin/sh /etc/rc.common
  2. START=22
  3. start() {
  4.            cat /etc/ipsets/*.set | ipset -exist restore
  5. }
复制代码



  
   将该脚本设成可执行(chmod +x /etc/init.d/ipset),并设成开机启动:
/etc/init.d/ipset enable
  
   
  
6.配置mwan3,可以参考我的截图。注意需要先在/etc/config/network 里把所有wan接口的metric值设成不同的,即需要显式地加入option metric 'xx'(xx是数字)。这是mwan3所要求的。然后在/etc/hotplug.d/iface/16-mwancustom里的exit 0前加入:

  1. sh /etc/firewall.user
复制代码


  
  
7.修改/etc/firewall.user,加入以下几句,需要替换成你的机顶盒的mac。

  1. _ipt() {
  2.      cmd="$(echo "$@" | sed 's|-A|-D|g;s|-I|-D|g')"
  3.      while iptables $cmd &>/dev/null; do
  4.          :
  5.      done
  6.      iptables $@
  7. }
  8. IPTV_MAC='11:22:33:44:55:66'
  9.   
  10. #由于机顶盒虽然可以从路由器获取IP,网关,但它的dns
  11. #总是固定在2个联通的预设值,所以需要劫持机顶盒的dns请求到路由器的dns。
  12. _ipt -t nat -A PREROUTING -m mac --mac-source $IPTV_MAC -p udp --dport 53 -j REDIRECT --to-ports  53
  13.   
  14. #我们需要把机顶盒发出的连接请求打到log里,配合我们的脚本。
  15. #由于仅仅记录state为NEW的包,并不频繁,并不会影响路由器性能。
  16. _ipt -t nat -I PREROUTING -m mac --mac-source $IPTV_MAC -m state --state NEW -j LOG --log-prefix "[iptv] "
复制代码


8.创建/opt/iptv.sh脚本。
---------------------------------------------------------------

  1. #!/bin/sh
  2. add_to_set(){
  3.      local ip=$1
  4.      local subnet=$ip/24
  5.      ping -W1 -c1 $ip &> /dev/null && return
  6.      if ! ipset -q test iptv $subnet; then
  7.          ipset add iptv $subnet
  8.          echo added $subnet to set iptv
  9.          ipset save iptv > /etc/ipsets/iptv.set
  10.      fi
  11. }
  12.   
  13. logread -e "\[iptv\]" -f | \
  14.      while read line; do
  15.          ip=$(echo "$line" | sed -r 's|.*DST=([0-9.]+).*|\1|')
  16.          echo requested $ip
  17.          add_to_set $ip &
  18.      done
复制代码


---------------------------------------------------------------
需要chmod +x /opt/iptv.sh
  
自动运行iptv.sh的开机脚本/etc/init.d/iptv:
-----------------------------------------------------------

  1. #!/bin/sh /etc/rc.common
  2.   
  3. START=96
  4.   
  5. SERVICE_USE_PID=1
  6. SERVICE_WRITE_PID=1
  7. SERVICE_DAEMONIZE=1
  8.   
  9.   
  10. start() {
  11.          service_start /opt/iptv.sh
  12. }
  13.   
  14. stop() {
  15.          service_stop /opt/iptv.sh
  16.          killall logread
  17. }
复制代码


---------------------------------------------------
同样需要chmod +x /etc/init.d/iptv && /etc/init.d/iptv enable
  
9.因为机顶盒处在NAT的后面,所以需要igmp proxy来转发组播流量到LAN,对于直播是必需的。
创建/etc/config/igmpproxy
------------------------------------------
  1. config igmpproxy
  2.          option quickleave 1
  3.   
  4. config phyint wan
  5.          option network iptv
  6.          option direction upstream
  7.          list altnet 0.0.0.0/0
  8.   
  9. config phyint lan
  10.          option network lan
  11.          option direction downstream
复制代码



------------------------------------------
在/etc/config/firewall里加入:
---------------------------------------
  1. config rule
  2.          option src 'wan'
  3.          option proto 'igmp'
  4.          option target 'ACCEPT'
  5.   
  6. config rule
  7.          option src 'wan'
  8.          option proto 'udp'
  9.          option dest 'lan'
  10.          option dest_ip '224.0.0.0/4'
  11.          option target 'ACCEPT'
  12.          option family 'ipv4'
复制代码


---------------------------------------
然后运行
/etc/init.d/network reload
/etc/init.d/firewall restart
/etc/init.d/igmpproxy start
mwan3
  
10.现在测试一下/opt/iptv.sh,在终端里运行之,打开机顶盒,在IPTV的界面里把它的菜单项都试一遍,同时查看iptv.sh的输出:
一般会有
requested x.x.x.x
added x.x.x.x/24 to set iptv
说明iptv.sh运行没问题。
遍历菜单项的时候,通常第一次IPTV会显示错误信息,这时按遥控器的返回键,然后再进入应该就可以了。
这样的话点播直播应该都没问题了。再试试你装的其他App,也应该可以了。
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-11-16 21:39 | 显示全部楼层
谢谢分享,学习中。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-19 09:18 | 显示全部楼层
学习一下,谢谢分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-19 09:32 来自手机 | 显示全部楼层
学习了,谢分享经验
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-19 10:11 来自手机 | 显示全部楼层
学习学习谢谢谢谢楼主
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-11-19 12:09 | 显示全部楼层
不错,可以解决大部分双面认证的iptv。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-7-12 11:44 | 显示全部楼层
嗯,很好很详细,怎么没人顶啊,,
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-29 02:20

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表