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

2015-04-03 12:29:06 +08:00
 coffeecat

电信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。

38904 次点击
所在节点    路由器
42 条回复
jasontse
2015-04-03 12:31:33 +08:00
你满载的时候 top 一下就会知道是 adbyby 的性能问题
yuhaaitao
2015-04-03 13:20:37 +08:00
ss和adbaby可以共存,chinadns做的自动区分国内外ip和adbaby可以共存吗?
blessme
2015-04-03 13:34:38 +08:00
同样的发现,adbyby影响性能。小宽带可以无视,100M确实不能无视。
k9982874
2015-04-03 13:37:36 +08:00
何必这么麻烦,easylist表直接生成ip规则,dnsmasq加载完事了
coffeecat
2015-04-03 13:45:30 +08:00
@yuhaaitao 可以的,我就是chinadns+ss+adbyby
coffeecat
2015-04-03 13:47:06 +08:00
@k9982874 我试过easychinalist+easyprivcaylist,用perl脚本生成了个1万5千条的dnsmasq.conf,结果什么网页都开不了了。。。
tywtyw2002
2015-04-03 14:08:07 +08:00
我怎么记得iptables REDIRECT不用去维护nat表呢?
只是修改dport呀
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
2015-04-03 14:22:53 +08:00
ryd994
2015-04-03 14:54:52 +08:00
DNAT会好点
yuhaaitao
2015-04-03 15:27:01 +08:00
@coffeecat 楼主博客介绍的很详细,可惜知识储备少,不少术语还没看明白。
zts1993
2015-04-03 15:53:00 +08:00
adbyby确实跑不动 MT7260
k9982874
2015-04-03 16:08:44 +08:00
@coffeecat 你要把子域名合并的,例如很多111.aaa.com 222.aaa.com 333.aaa.com合并成一条*.aaa.com
smileawei
2015-04-03 16:23:28 +08:00
Adbyby 会启动很多进程
yuhaaitao
2015-04-03 16:33:41 +08:00
@zts1993 7260这么差劲?那个能带动?
coffeecat
2015-04-03 16:55:06 +08:00
@k9982874 这样确实可以,大约剩下5000条,但是也增加了误封网站的几率,我搞过,结果baidu和网易都上不去了。。
zts1993
2015-04-03 17:05:40 +08:00
@yuhaaitao 不是7260差。。连接数多了adbyby占用厉害。。
LazyZhu
2015-04-03 17:10:10 +08:00
不就是开源的prioxy修改来的产品么。。。
yuhaaitao
2015-04-03 17:41:10 +08:00
@LazyZhu 路由器上去广告还有什么可行的方案?
Showfom
2015-04-03 19:15:31 +08:00
@yuhaaitao DNS屏蔽呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX