找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
楼主: easyteacher

分享一个不到60行但是非常智能的QoS脚本

[复制链接]
发表于 2020-4-5 09:53 | 显示全部楼层
wenpo0755 发表于 2020-4-5 00:24
嘿,巧了,正在研究

有成果了没?

点评

我一直在用旧版的,新版的旧内核装不起来,PandoraBox R20.3.8  详情 回复 发表于 2020-4-5 21:21
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-5 10:20 | 显示全部楼层
之所以我说楼主处理方式诡异,是因为我觉得下面这样和楼主jump了多次处理的结果是一样的,因为本身iptables规则处理就是从上往下顺序处理,你jump到叶链处理和同在子链处理效果是一样的,除非有特殊要求,比如官方qos,它叶链需要更换模式时单独替换内容,所以jump多了一次,它最后打标的结果是合在一起一样的:

iptables -t mangle -N DSCP 2>/dev/null || iptables -t mangle -F DSCP

iptables -t mangle -C PREROUTING -i eth1   -j DSCP || iptables -t mangle -A PREROUTING -i eth1   -j DSCP
iptables -t mangle -C PREROUTING -i br-lan -j DSCP || iptables -t mangle -A PREROUTING -i br-lan -j DSCP
echo "iptables -t mangle -D PREROUTING -i eth1   -j DSCP" > /tmp/log/q_run
echo "iptables -t mangle -D PREROUTING -i br-lan -j DSCP" >> /tmp/log/q_run

iptables -t mangle -C OUTPUT -o eth1   -j DSCP || iptables -t mangle -A OUTPUT -o eth1 -j DSCP
iptables -t mangle -C OUTPUT -o br-lan -j DSCP || iptables -t mangle -A OUTPUT -o br-lan -j DSCP
echo "iptables -t mangle -D OUTPUT -o eth1 -j DSCP" >> /tmp/log/q_run
echo "iptables -t mangle -D OUTPUT -o br-lan -j DSCP" >> /tmp/log/q_run

iptables -t mangle -A DSCP -p tcp -m multiport --dports 22,53,80 -j DSCP --set-dscp-class cs6
iptables -t mangle -A DSCP -p udp -m multiport --dports 22,53,80 -j DSCP --set-dscp-class cs6
iptables -t mangle -A DSCP -m hashlimit --hashlimit-name BULK_TRAFFIC --hashlimit-mode srcip,dstip,dstport --hashlimit-upto 50kb/second --hashlimit-burst 51200 --hashlimit-htable-max 1000000 --hashlimit-htable-expire 10000 --hashlimit-htable-gcinterval 10000 -j RETURN
iptables -t mangle -A DSCP -m connbytes --connbytes 1048576: --connbytes-dir both --connbytes-mode bytes -j DSCP --set-dscp-class cs1
iptables -t mangle -A DSCP -m hashlimit --hashlimit-name QUICK_TRAFFIC_BYTE --hashlimit-mode srcip,dstip,dstport --hashlimit-above 50kb/second --hashlimit-burst 51200 --hashlimit-htable-max 1000000 --hashlimit-htable-expire 10000 --hashlimit-htable-gcinterval 10000 -j RETURN
iptables -t mangle -A DSCP -m hashlimit --hashlimit-name QUICK_TRAFFIC_PKT --hashlimit-mode srcip,dstip,dstport --hashlimit-above 128/second --hashlimit-burst 1 --hashlimit-htable-max 1000000 --hashlimit-htable-expire 10000 --hashlimit-htable-gcinterval 10000 -j RETURN
iptables -t mangle -A DSCP -m connbytes --connbytes 250: --connbytes-dir both --connbytes-mode avgpkt -j RETURN
iptables -t mangle -A DSCP -m connbytes --connbytes :102400 --connbytes-dir both --connbytes-mode bytes -j RETURN
iptables -t mangle -A DSCP -j DSCP --set-dscp-class cs6

点评

没注意到这些规则可以合并,这个思路不错。  详情 回复 发表于 2020-4-5 13:51
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-5 10:36 | 显示全部楼层
思考一下。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 13:51 | 显示全部楼层
wulishui 发表于 2020-4-5 10:20
之所以我说楼主处理方式诡异,是因为我觉得下面这样和楼主jump了多次处理的结果是一样的,因为本身iptables ...

没注意到这些规则可以合并,这个思路不错。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 18:37 | 显示全部楼层
wulishui 发表于 2020-4-4 09:26
不是我说,我认真研究了下,还是觉得楼主搞得太复杂,而且诡异。
在我这效果不好(用到的模块我通通都有, ...

我这里hashlimit可以正常匹配,已经设置成上传512kbit,下载1600kbit了。



但是存在问题,我本来以为把hashlimit-mode设置成srcip,dstip,dstport可以标记多线程下载的总速度,但是现在发现好像不行。

本帖子中包含更多资源

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

×

点评

还是要把上传下载的流量规则分开来,不能无差别进入mark_BULK表。这时候需要对br-lan做ingress流控处理而不是WAN,不然hashlimit表里面的目标ip永远是WAN的IP。  详情 回复 发表于 2020-4-5 19:39
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 19:39 | 显示全部楼层
easyteacher 发表于 2020-4-5 18:37
我这里hashlimit可以正常匹配,已经设置成上传512kbit,下载1600kbit了。

还是要把上传下载的流量规则分开来,不能无差别进入mark_BULK表。这时候需要对br-lan做ingress流控处理而不是WAN,不然hashlimit表里面的目标ip永远是WAN的IP。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-5 21:16 | 显示全部楼层
你用的是什么系统?

点评

OpenWRT 19.07.1 官方原版  详情 回复 发表于 2020-4-5 22:29
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-5 21:21 | 显示全部楼层

我一直在用旧版的,新版的旧内核装不起来,PandoraBox R20.3.8
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 22:28 | 显示全部楼层
本帖最后由 easyteacher 于 2020-4-5 22:31 编辑
wulishui 发表于 2020-4-4 09:26
不是我说,我认真研究了下,还是觉得楼主搞得太复杂,而且诡异。
在我这效果不好(用到的模块我通通都有, ...

增加了mark_FAST判断,对刚起步的连接20K内的数据打上AF31。体验了一下上传1mbit下载2mbit然后同时下载BT和浏览网页的感觉,有明显优化。让下载流量走POSTROUTING链到mark_DSCP_dl,可以获取NAT后的连接信息。

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 22:29 | 显示全部楼层
wenpo0755 发表于 2020-4-5 21:16
你用的是什么系统?

OpenWRT 19.07.1 官方原版
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-6 11:58 | 显示全部楼层
我在想是不是也要转移到cake了,因为普通的mark和该死的XXR严重冲突直接断网,之前按qos的方式用connmark处理还可以避免,现在发现更新XXR之后又不行了,你改进一次,它就干你一次,FK!cs mark应该就不会有这个问题了。

点评

今天又更新了一下,换了一种思路,用hashlimit-burst来替代connbytes。  详情 回复 发表于 2020-4-6 13:43
上传下载带宽太低的话,加个ack-filter-aggressive参数,然后mark_BULK_(DL/UL)里面的hashlimit-upto/above设置低一点,下载BT的同时浏览网页就一点不卡了。  详情 回复 发表于 2020-4-6 13:28
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 13:28 | 显示全部楼层
wulishui 发表于 2020-4-6 11:58
我在想是不是也要转移到cake了,因为普通的mark和该死的XXR严重冲突直接断网,之前按qos的方式用connmark处 ...

上传下载带宽太低的话,加个ack-filter-aggressive参数,然后mark_BULK_(DL/UL)里面的hashlimit-upto/above设置低一点,下载BT的同时浏览网页就一点不卡了。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 13:43 | 显示全部楼层
wulishui 发表于 2020-4-6 11:58
我在想是不是也要转移到cake了,因为普通的mark和该死的XXR严重冲突直接断网,之前按qos的方式用connmark处 ...

今天又更新了一下,换了一种思路,用hashlimit-burst来替代connbytes。

点评

我现在纯端口控制也还过得去。但是绝对不能加什么小包优先、你那个upto,因为网络原因,视频、BT全部都是小包小流量,它根本就大不了。如果我有几十M的流量,我还qos做什么呢。  详情 回复 发表于 2020-4-6 14:54
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2020-4-6 14:54 | 显示全部楼层
easyteacher 发表于 2020-4-6 13:43
今天又更新了一下,换了一种思路,用hashlimit-burst来替代connbytes。

我现在纯端口控制也还过得去。但是绝对不能加什么小包优先、你那个upto,因为网络原因,视频、BT全部都是小包小流量,它根本就大不了。如果我有几十M的流量,我还qos做什么呢。

点评

调整upto的大小可破,我自己已经限速体验过了,上1下2的时候THRESHOLD调成3效果还可以,正常浏览网页和BT下载的流量可以被区分开来。  详情 回复 发表于 2020-4-6 16:48
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-6 16:48 | 显示全部楼层
本帖最后由 easyteacher 于 2020-4-6 17:02 编辑
wulishui 发表于 2020-4-6 14:54
我现在纯端口控制也还过得去。但是绝对不能加什么小包优先、你那个upto,因为网络原因,视频、BT全部都是 ...

调整upto的大小可破,我自己已经限速体验过了,上1下2的时候THRESHOLD调成3效果还可以,正常浏览网页和BT下载的流量可以被区分开来,跟小包没什么关系,hashlimit可以根据速度来判断。
从左到右分别是Bulk、Best Effort、Video、Voice


本帖子中包含更多资源

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

×

点评

今晚试试看  详情 回复 发表于 2020-4-6 17:27
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

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

GMT+8, 2025-7-19 04:33

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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

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