V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coffeecat
V2EX  ›  路由器

Openwrt 下广告过滤插件 adbyby 对网速影响的研究 ——主要是软 nat 不给力

  •  
  •   coffeecat · 2015-04-03 12:29:06 +08:00 · 38903 次点击
    这是一个创建于 3311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    电信100Mbps光纤,主路由是netgear wndr4300,刷op前后家里的nas迅雷离线均可以达到11MB/s下载速度,但是路由装上adbyby以后,迅雷离线平均速度不会超过6.2MB/s(50Mbps),经过分析测试,原因在于如下语句:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118

    由于op目前不支持硬件nat,上述语句的nat是软nat实现,性能较差。
    由于路由上还有ss,所以一般不会用pc主机上迅雷下东西,我将nas ip加入了ss例外列表,同时为了下载提速,将nas ip加入不使用adbyby的nat转发的ip段。
    解决方案:
    将局域网分成2个子网,掩码25,低地址段使用静态ip,分配其中一个给nas用于离线下载,高地址段使用dhcp,通过adbyby的nat转发proxy实现广告过滤。路由器、nas和客户机的掩码设置为24,这样可以互相访问,千兆局域网。
    首先在luci里面‘网络’-‘接口’-‘lan’-‘DHCP服务器’-‘开始’,将dhcp起始段设为128。

    将/etc/rc.local里面的语句修改为:
    ……
    iptables -t nat -A PREROUTING -p tcp -s 192.168.1.128/25 --dport 80 -j REDIRECT --to-ports 8118
    ……
    重启路由。
    这样,将终端的ip设为小于128的时候,adbyby广告过滤功能对其无效,下载速度100M,当终端大于等于128时,adbyby广告过滤功能又对其开启,下载速度50M。

    42 条回复    2017-06-07 10:56:16 +08:00
    jasontse
        1
    jasontse  
       2015-04-03 12:31:33 +08:00 via iPad
    你满载的时候 top 一下就会知道是 adbyby 的性能问题
    yuhaaitao
        2
    yuhaaitao  
       2015-04-03 13:20:37 +08:00
    ss和adbaby可以共存,chinadns做的自动区分国内外ip和adbaby可以共存吗?
    blessme
        3
    blessme  
       2015-04-03 13:34:38 +08:00
    同样的发现,adbyby影响性能。小宽带可以无视,100M确实不能无视。
    k9982874
        4
    k9982874  
       2015-04-03 13:37:36 +08:00
    何必这么麻烦,easylist表直接生成ip规则,dnsmasq加载完事了
    coffeecat
        5
    coffeecat  
    OP
       2015-04-03 13:45:30 +08:00   ❤️ 1
    @yuhaaitao 可以的,我就是chinadns+ss+adbyby
    coffeecat
        6
    coffeecat  
    OP
       2015-04-03 13:47:06 +08:00
    @k9982874 我试过easychinalist+easyprivcaylist,用perl脚本生成了个1万5千条的dnsmasq.conf,结果什么网页都开不了了。。。
    tywtyw2002
        7
    tywtyw2002  
       2015-04-03 14:08:07 +08:00
    我怎么记得iptables REDIRECT不用去维护nat表呢?
    只是修改dport呀
    yuhaaitao
        8
    yuhaaitao  
       2015-04-03 14:15:51 +08:00
    @coffeecat chinadns+ss已装好,直接按照官方指引安装吗?需要特别设置吗?


    OPENWRT
    目前会支持mtk7620a、7620N和 ar7240cpu的路由,根据cpu下载相应程序

    1、进shell

    2、wget http://info.adbyby.com/download/7620n.tar.gz

    或http://info.adbyby.com/download/openwrt.tar.gz

    3 tar -xzvf openwrt.tar.gz

    4 cd bin

    5 chmod 777 adbyby

    6 ./adbyby&

    7 客户机设置系统代{过}{滤}理为路由器ip,端口 8118

    或路由设置透明代理 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8118
    coffeecat
        9
    coffeecat  
    OP
       2015-04-03 14:22:53 +08:00   ❤️ 1
    ryd994
        10
    ryd994  
       2015-04-03 14:54:52 +08:00 via Android
    DNAT会好点
    yuhaaitao
        11
    yuhaaitao  
       2015-04-03 15:27:01 +08:00   ❤️ 1
    @coffeecat 楼主博客介绍的很详细,可惜知识储备少,不少术语还没看明白。
    zts1993
        12
    zts1993  
       2015-04-03 15:53:00 +08:00 via Android
    adbyby确实跑不动 MT7260
    k9982874
        13
    k9982874  
       2015-04-03 16:08:44 +08:00
    @coffeecat 你要把子域名合并的,例如很多111.aaa.com 222.aaa.com 333.aaa.com合并成一条*.aaa.com
    smileawei
        14
    smileawei  
       2015-04-03 16:23:28 +08:00 via iPhone
    Adbyby 会启动很多进程
    yuhaaitao
        15
    yuhaaitao  
       2015-04-03 16:33:41 +08:00 via Android
    @zts1993 7260这么差劲?那个能带动?
    coffeecat
        16
    coffeecat  
    OP
       2015-04-03 16:55:06 +08:00
    @k9982874 这样确实可以,大约剩下5000条,但是也增加了误封网站的几率,我搞过,结果baidu和网易都上不去了。。
    zts1993
        17
    zts1993  
       2015-04-03 17:05:40 +08:00
    @yuhaaitao 不是7260差。。连接数多了adbyby占用厉害。。
    LazyZhu
        18
    LazyZhu  
       2015-04-03 17:10:10 +08:00 via iPhone
    不就是开源的prioxy修改来的产品么。。。
    yuhaaitao
        19
    yuhaaitao  
       2015-04-03 17:41:10 +08:00 via Android
    @LazyZhu 路由器上去广告还有什么可行的方案?
    Showfom
        20
    Showfom  
       2015-04-03 19:15:31 +08:00 via iPhone   ❤️ 1
    @yuhaaitao DNS屏蔽呗
    LazyZhu
        21
    LazyZhu  
       2015-04-03 19:20:13 +08:00   ❤️ 1
    @yuhaaitao 现在的路由不适合做完全的广告过滤,但适合屏蔽一些垃圾域名(spam/tracker等)
    coffeecat
        22
    coffeecat  
    OP
       2015-04-03 19:44:40 +08:00
    @jasontse adbyby进程不止一个,占用很厉害,所以一般一小时干掉再重启
    yuhaaitao
        23
    yuhaaitao  
       2015-04-03 20:47:19 +08:00 via Android
    @Showfom 那个DNS效果好?
    yuhaaitao
        24
    yuhaaitao  
       2015-04-03 20:49:48 +08:00 via Android
    @coffeecat 极路由那个视频广告屏蔽插件会好点吗?占用进程怎么样了?
    coffeecat
        25
    coffeecat  
    OP
       2015-04-03 22:33:16 +08:00
    @yuhaaitao 我没用过,据别人说效果一般。。
    Showfom
        26
    Showfom  
       2015-04-04 00:02:27 +08:00   ❤️ 1
    @yuhaaitao 自建,dnsmasq
    GPU
        27
    GPU  
       2015-04-04 01:17:38 +08:00
    @Showfom 把广告IP都 127.1 了?
    Showfom
        28
    Showfom  
       2015-04-04 01:46:04 +08:00
    @GPU 解析到 0.0.0.0 才最好,解析到 127.0.0.1 的话,如果你本机有 httpd 环境,这样就会消耗本机资源。
    leavic
        29
    leavic  
       2015-04-27 23:35:01 +08:00
    哎,你要是用了privoxy你会感慨adbyby效率真高
    coffeecat
        30
    coffeecat  
    OP
       2015-04-28 08:47:14 +08:00
    @leavic 据作者说adbyby openwrt版本针对cpu优化了很多的,但目前op下只有arxx和mt7620版本的,其他cpu的路由器无法使用,纯privoxy据说效率不高
    coffeecat
        31
    coffeecat  
    OP
       2015-04-28 08:55:37 +08:00
    @leavic 能教一下privoxy使用方法么,刚买了个linksys wrt1900ac,马牌双核1.2GHz的cpu,我主要碰到2个问题,1.安装完privoxy后,设置iptable转发后,所有网站无法上去,报Invalid header received from client 2.使用adrew adblock过滤规则转privoxy规则的脚本总是执行失败,你这边有现成的脚本么?(之前用Andrew的那个报错。。)
    coffeecat
        32
    coffeecat  
    OP
       2015-04-30 22:32:23 +08:00
    @leavic 实测linksys wrt1900ac下privoxy搭配7.5M的action,800K的filter,可以拉到接近9MB(72Mbps)的速度,相信如果adbyby支持wrt1900ac的马牌cpu的话拉满100Mbps的宽带应该没有问题。
    SuZixiong
        33
    SuZixiong  
       2015-09-02 11:36:10 +08:00
    请问如何将局域网分成 2 个子网,掩码 25 。
    还是只要分配将 nas 静态到低 ip 段, dhcp 从高 ip 开始分配就可以了?
    coffeecat
        34
    coffeecat  
    OP
       2015-09-04 22:59:30 +08:00
    ixufuyang
        35
    ixufuyang  
       2016-09-12 01:09:55 +08:00 via Android
    为何我的路由 OpenWrt 下安装了 adbyby 下载速度能达到 23MB/S ? 200m 的光纤。
    yjxjn
        36
    yjxjn  
       2016-10-03 13:03:43 +08:00
    @ixufuyang 200M 的光纤?不都现在 100M 么?
    ixufuyang
        37
    ixufuyang  
       2016-10-15 22:15:10 +08:00 via Android
    @yjxjn 现在 300M 都有了。。
    yjxjn
        38
    yjxjn  
       2016-10-15 22:35:52 +08:00
    @ixufuyang 300M 网速,为了过滤广告降低到 50M ,心不甘啊。
    ixufuyang
        39
    ixufuyang  
       2016-10-16 00:44:38 +08:00 via Android
    @yjxjn 怎么可能,我 200M 的开着 adbyby ,下载网速能到 25M/s 啊。
    pig1983
        40
    pig1983  
       2017-02-02 08:32:51 +08:00
    @ixufuyang 你是啥路由
    ixufuyang
        41
    ixufuyang  
       2017-05-21 19:58:37 +08:00
    @pig1983 网件的 3800 啊
    h0r1z0n
        42
    h0r1z0n  
       2017-06-07 10:56:16 +08:00
    这个方法不错 期待 koolproxy 继续完善
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2869 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:28 · PVG 11:28 · LAX 20:28 · JFK 23:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.