🎉 【限速教程】之 定时限速 新手级教程 🎉

【限速教程】之 定时限速 新手级教程

查看: 18787|回复: 27

【限速教程】之 定时限速 新手级教程

[复制链接]

weigefenxiang

weigefenxiang

当前离线

积分426

IP卡

狗仔卡

电梯直达

1#

发表于 2023-6-4 18:57

|

只看该作者

|倒序浏览

|阅读模式

本帖最后由 weigefenxiang 于 2023-6-9 18:29 编辑

本文仅针对有「定时限速」需求的小白。

新手教程,会用通俗的话来介绍,方便理解,如果有说错的地方欢迎指出。

TC (Traffic Control)命令—linux自带高级流控

iptables 对 ip 、mac、时间等进行筛选(过滤)

效果图

Windows (下行限速100M,上行3M)

WiFi 只对上行进行限速

亲戚都在家,只能拿副宽做测试

重点

固件支持 tc + iptablestc + iptables 相关核心(重要),编译过程中加上(帖子最下方有详细说明)

关闭硬件加速功能(流量监控,限速必要条件)

下面以 360T7 H大固件 作为例子,需要在终端(ssh、ttyd等)完成

步骤:

1.1 清空规则

避免其他规则干扰

# 我的上行端口 pppoe-wan

upDEV="pppoe-wan"

tc qdisc del dev $upDEV root 2>/dev/null

iptables -t mangle -F PREROUTING复制代码

1.2 上传限速

192.168.1.50 最低保障速率 1Mpbs 限速 3Mpbs

192.168.1.51 最低保障速率 8Mpbs 限速 10Mpbs, 时间为 周一至周五,22:17 至 18:20(次日)

192.168.1.100-192.168.1.254 最低保障速率 1Mpbs 限速 3Mpbs复制代码

将下面脚本代码 小作修改后,直接粘贴到终端,即可食用

#!/bin/sh

# 我的上行端口 pppoe-wan,这里请改为你的WAN口(或上行口),查看命令 ifconfig ,自行判断

upDEV="pppoe-wan"

# 1: (即 1:0 的缩写) 填哪个都行

tc qdisc add dev $upDEV root handle 1: htb default 8

# rate 50mbit = 50Mpbs,这里一般填写上行带宽速率

tc class add dev $upDEV parent 1:0 classid 1:1 htb rate 50mbit

tc class add dev $upDEV parent 1:1 classid 1:11 htb rate 1mbit ceil 3mbit

tc class add dev $upDEV parent 1:1 classid 1:12 htb rate 8mbit ceil 10mbit

# 这里别写错了,是 parent 1:0

tc filter add dev $upDEV parent 1:0 protocol ip handle 2011 fw classid 1:11

tc filter add dev $upDEV parent 1:0 protocol ip handle 2012 fw classid 1:12

# iptables 设置

iptables -t mangle -A PREROUTING -s 192.168.1.50 -j MARK --set-xmark 2011

iptables -t mangle -A PREROUTING -s 192.168.1.50 -j RETURN

iptables -t mangle -A PREROUTING -s 192.168.1.51 -j MARK --set-xmark 2012 -m time --timestart 22:17 --timestop 18:20 --kerneltz --weekdays 1,2,3,4,5

iptables -t mangle -A PREROUTING -s 192.168.1.51 -j RETURN

iptables -t mangle -A PREROUTING -m iprange --src-range 192.168.1.100-192.168.1.254 -j MARK --set-xmark 2011

iptables -t mangle -A PREROUTING -m iprange --src-range 192.168.1.100-192.168.1.254 -j RETURN复制代码

命令解释:

# tc命令

# rate :最低保障速率

# ceil : 最高速率 (如不设置该项,最高速率=rate)

# parent 1:1 classid 1:11 : 这条规则继承父类(1:1),命名为1:11 。

# handle 2011 : tc对于 iptables标记为(1:11)2011的包 ,进行限速,最低25Mpbs,最高40Mps

# PREROUTING :(一般用作处理上行)

# iptables

# -s 192.168.1.50 :筛选 来源于 150 的IP

# -j MARK --set-xmark 2011 :对包进行标记 2011,交给 tc 分辨

# -s 192.168.1.50 -j RETURN :来源于 192.168.1.50 不再往下进行过滤) 可以理解为快速跳过这个步骤。

# -m time --timestart 22:17 --timestop 18:20 : 时间段控制 22:17~18:20(次日)

# --kerneltz :(系统时间,如不设置,iptables以UTC为标准,实际生效时间会比北京时间晚8小时整)

# --weekdays 1,2,3,4,5 :(周一至周五)

# 注:-m iprange 需 iptables-mod-iprange 模块,若是ip很多,务必使用 iprange 减少规则。

# -m iprange --dst-range 192.168.1.100-192.168.1.254 :过滤IP段X.[100-254]复制代码

1.3 查看以上命令是否生效

tc qdisc show dev $upDEV

tc class show dev $upDEV

iptables -t mangle -L PREROUTING复制代码

1.4 清空规则(输入以下命令或重启,iptables 默认不保存规则),如果影响了其它应用,重启就能恢复如初。

tc qdisc del dev $upDEV root

iptables -t mangle -F PREROUTING复制代码

2.0 下载限速

# 下行限制 通常为 br-landlDEVS="br-lan"

..................复制代码先写这么多吧,有空再补完吧。

附: 相关内核/依赖

tc-tiny 重要

kmod-sched-core tc 限速核心

kmod-sched tc sfq 随机公平排队 相关 ,查看固件是否支持sfq ,终端命令:opkg files kmod-sched|grep sfq

kmod-sched-cake 流量智能队列管理(QOS)

kmod-ifb 虚拟网卡,记得eqos、qos采用的就是这个,方便对同一网口进行上下行限速

iptables-mod-iprange 对IP段进行筛选(过滤)

iptables-mod-nat-extra 流量智能队列管理(QOS)

kmod-sched-connmark

kmod-sched-ipset

以前整理过,丢了,有些我也忘记用途了,编译的时候尽量都打上,以后报错的时候原因不好找。复制代码

3.0 进阶

以上命令成功后,且能轻松驾驭后,保存脚本!

想要理解tc命令的,或做进阶设置可参考 :

[译] 《Linux 高级路由与流量控制手册(2012)》第九章:用 tc qdisc 管理 Linux 网络带宽

帖子的编辑太大问题了,编辑了几十次,吞代码,太难受了

得用纯文本方式编辑才不容易出错

wifi定时限速

本帖子中包含更多资源

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

×

分享到:

QQ好友和群

QQ空间

收藏22

支持1

反对0

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

回复

使用道具

举报

置顶卡

沉默卡

喧嚣卡

顶贴卡

显身卡

电磁炮轰八方

电磁炮轰八方

当前离线

积分613

IP卡

狗仔卡

2#

发表于 2023-6-4 23:15

|

只看该作者

7981支持硬件qos,没必要关闭硬件加速呀,楼主你的固件是不是编译的时候没有弄相关的呀

点评

363825021

硬件qos,怎么用命令在 "计划任务" 里定时限速?

详情

回复

发表于 2023-6-6 09:28

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

回复

使用道具

举报

显身卡

363825021

363825021

当前离线

积分862

IP卡

狗仔卡

3#

发表于 2023-6-6 09:28

|

只看该作者

电磁炮轰八方 发表于 2023-6-4 23:15

7981支持硬件qos,没必要关闭硬件加速呀,楼主你的固件是不是编译的时候没有弄相关的呀 ...

硬件qos,怎么用命令在 "计划任务" 里定时限速?

点评

电磁炮轰八方

跟据楼主发的,可以在iptables里设置

大概这样应该是可以的,我没试过。或者计划任务里定时执行和删除你写的iptables规则也是可以的

详情

回复

发表于 2023-6-6 09:49

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

回复

使用道具

举报

显身卡

电磁炮轰八方

电磁炮轰八方

当前离线

积分613

IP卡

狗仔卡

4#

发表于 2023-6-6 09:49

|

只看该作者

363825021 发表于 2023-6-6 09:28

硬件qos,怎么用命令在 "计划任务" 里定时限速?

跟据楼主发的,可以在iptables里设置

iptables -t mangle -A FORWARD -s 192.168.1.51 -j MARK --set-mark 1 -m time --timestart 22:17 --timestop 18:20 --kerneltz --weekdays 1,2,3,4,5复制代码

大概这样应该是可以的,我没试过。或者计划任务里定时执行和删除你写的iptables规则也是可以的

点评

363825021

谢谢回答,楼主的要关闭硬件加速不实用,现在要跑鲁班网心云,爱快可以设置时间段限速,刚换Openwrt,里面只有个Qos可以限速试了的确有效,但是要怎么在"计划任务" 里定时控制Qos, 用/etc/init.d/qos stop没用

详情

回复

发表于 2023-6-6 10:56

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

回复

使用道具

举报

显身卡

363825021

363825021

当前离线

积分862

IP卡

狗仔卡

5#

发表于 2023-6-6 10:56

|

只看该作者

电磁炮轰八方 发表于 2023-6-6 09:49

跟据楼主发的,可以在iptables里设置

大概这样应该是可以的,我没试过。或者计划任务里定时执行和删除你 ...

谢谢回答,楼主的要关闭硬件加速不实用,现在要跑鲁班网心云,爱快可以设置时间段限速,刚换Openwrt,里面只有个Qos可以限速试了的确有效,但是要怎么在"计划任务" 里定时控制Qos, 用/etc/init.d/qos stop没用

点评

weigefenxiang

你说的是 luci-app-qos 吧

记得是要修改 /etc/config/qos

另外,Qos能正常,说明你的路由器硬件(有线或WiFi)加速并未实质生效,或者没有硬件加速功能。

详情

回复

发表于 2023-6-9 18:16

电磁炮轰八方

你那个固件确定是用的硬件qos吗?

详情

回复

发表于 2023-6-6 21:39

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

回复

使用道具

举报

显身卡

电磁炮轰八方

电磁炮轰八方

当前离线

积分613

IP卡

狗仔卡

6#

发表于 2023-6-6 21:39

|

只看该作者

363825021 发表于 2023-6-6 10:56

谢谢回答,楼主的要关闭硬件加速不实用,现在要跑鲁班网心云,爱快可以设置时间段限速,刚换Openwrt,里面 ...

你那个固件确定是用的硬件qos吗?

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

回复

使用道具

举报

显身卡

weigefenxiang

weigefenxiang

当前离线

积分426

IP卡

狗仔卡

7#

楼主|

发表于 2023-6-9 18:16

|

只看该作者

本帖最后由 weigefenxiang 于 2023-6-9 18:24 编辑

363825021 发表于 2023-6-6 10:56

谢谢回答,楼主的要关闭硬件加速不实用,现在要跑鲁班网心云,爱快可以设置时间段限速,刚换Openwrt,里面 ...

你说的是 luci-app-qos 吧

记得是要修改 /etc/config/qos

config interface 'wan'

option enabled '0'

'0'代表关闭,'1'代表开启复制代码

用reload 生效。想要用定时的话,可以参考crontab,这里就不细致讲了。

/etc/init.d/qos reload复制代码

爱快的时间段,IP段限速,其实就是以 tc qdisc + iptables 实现的。

另外,Qos能正常,说明你的路由器硬件(有线或WiFi)加速并未实质生效,或者没有硬件加速功能。

点评

363825021

谢谢!感觉没有爱快方便

详情

回复

发表于 2023-6-10 09:43

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

回复

使用道具

举报

显身卡

363825021

363825021

当前离线

积分862

IP卡

狗仔卡

8#

发表于 2023-6-10 09:43

|

只看该作者

本帖最后由 363825021 于 2023-6-10 10:28 编辑

weigefenxiang 发表于 2023-6-9 18:16

你说的是 luci-app-qos 吧

记得是要修改 /etc/config/qos

谢谢!试了一下果然可以,弄了个定时命令改qos,简直完美

点评

Stanley25535

您好,我是在openwrt下跑网心的,您能贴一个具体的限速教程吗~包括定时命令的,先谢过了

详情

回复

发表于 2024-3-2 22:14

highwill

老哥,怎么用,可以详细说下吗

详情

回复

发表于 2023-7-30 17:26

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

回复

使用道具

举报

显身卡

363825021

363825021

当前离线

积分862

IP卡

狗仔卡

9#

发表于 2023-6-10 10:32

|

只看该作者

#!/bin/sh

# 我的上行端口 pppoe-wan,这里请改为你的WAN口(或上行口),查看命令 ifconfig ,自行判断

upDEV="pppoe-wan"

这里WAN口,多播也是填 pppoe-wan吗? 有pppoe-wan1.2.3.45个口

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

回复

使用道具

举报

显身卡

961335435

961335435

当前离线

积分152

IP卡

狗仔卡

10#

发表于 2023-7-23 07:05

来自手机

|

只看该作者

老哥,n1作为旁路由怎么搞?

点评

weigefenxiang

如果是单臂旁路由,就做不到

发表于 2023-9-17 15:36

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

回复

使用道具

举报

显身卡

highwill

highwill

当前离线

积分678

IP卡

狗仔卡

11#

发表于 2023-7-30 17:26

|

只看该作者

363825021 发表于 2023-6-10 09:43

谢谢!试了一下果然可以,弄了个定时命令改qos,简直完美

老哥,怎么用,可以详细说下吗

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

回复

使用道具

举报

显身卡

X拉普拉斯

X拉普拉斯

当前离线

积分31

IP卡

狗仔卡

12#

发表于 2023-11-16 23:07

|

只看该作者

太强了大佬,我系统内的eqosplus一直有问题,当天只要有一段时间限速,当天限速时段外也会使该设备限速。而楼主的命令则没有这个bug,真的是非常好用,感谢楼主分享

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

回复

使用道具

举报

显身卡

cjf350300

cjf350300

当前离线

积分245

IP卡

狗仔卡

13#

发表于 2023-11-25 01:57

|

只看该作者

大佬能不能实现一个功能, 比如设备达到10G的流量后,开始进行限速

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

回复

使用道具

举报

显身卡

lianqiu45

lianqiu45

当前离线

积分56

IP卡

狗仔卡

14#

发表于 2024-1-25 12:59

|

只看该作者

提示缺少依赖kmod-sched这个去哪里找,换了好几个源都没有。

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

回复

使用道具

举报

显身卡

Stanley25535

Stanley25535

当前离线

积分335

IP卡

狗仔卡

15#

发表于 2024-3-2 15:24

|

只看该作者

本帖最后由 Stanley25535 于 2024-3-2 17:11 编辑

编辑掉。奇怪了,按照楼主的设置,ip地址填了我自己的电脑的,但是测试的时候依旧是满速...我用的是pc端的speed test,没有楼主这种指定ip去测试的。

tc class add dev $upDEV parent 1:0 classid 1:1 htb rate 150mbit

tc class add dev $upDEV parent 1:1 classid 1:11 htb rate 0.5mbit ceil 2mbit

tc filter add dev $upDEV parent 1:0 protocol ip handle 2011 fw classid 1:11

# iptables 设置

iptables -t mangle -A PREROUTING -s 192.168.15.151 -j MARK --set-xmark 2011

iptables -t mangle -A PREROUTING -s 192.168.15.151 -j RETURN

然后用了

tc qdisc show dev $upDEV

tc class show dev $upDEV

iptables -t mangle -L PREROUTING

得到:

class htb 1:11 parent 1:1 prio 0 rate 500Kbit ceil 2Mbit burst 1600b cburst 1600b

class htb 1:1 root rate 150Mbit ceil 150Mbit burst 1575b cburst 1575b

target prot opt source destination

MARK all -- 192.168.15.151 anywhere MARK set 0x7db

RETURN all -- 192.168.15.151 anywhere

但是测试的结果时候还是满速.....系统是ImmortalWrt 23.0.5.1

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

回复

使用道具

举报

显身卡

✨ 相关推荐 ✨

智力低的表现
苹果下载365app

智力低的表现

🎯 07-17 👁️ 2826
真实赛车3版本大全
365电子游戏

真实赛车3版本大全

🎯 06-29 👁️ 6570
日本倾全国之力,用10年时间建造“大和号”,仅参战3小时被打沉