背景
现在很多电视版的 APP 都会占用家庭带宽的上传,用家庭带宽当成p2p节点。 我的小水管儿经不住他们薅,所以决定给电视限制上传速度,一劳永逸
操作步骤
- 给特定设备分配静态IP
- 标记特定设备的上传流量
- 为已标记流量和非标记流量分别创建一个队列
- 给标记流量队列队速,给未标记流量不限速
具体 Queue Trees 限速配置
给设备分配静态IP之后,比如我这里电视的IP是 192.168.1.28
,我的电脑是 192.168.1.26
,同时把电脑加上是电脑可以方便的用测速工具来进行测试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| # 标记tv的上传流量
/ip firewall mangle add chain=prerouting src-address=192.168.1.28 action=mark-packet new-packet-mark=upload-limit-tv comment="TV upload limit"
# 标记测试设备的上传流量
/ip firewall mangle add chain=prerouting src-address=192.168.1.26 action=mark-packet new-packet-mark=upload-limit-tv comment="Test upload limit"
# 为标记流量创建父队列
/queue tree add name="parent-queue-marked" parent=global max-limit=5M comment="default marked upload limit 5M"
# 为未标记流量创建父队列
/queue tree add name="parent-queue-unmarked" parent=global max-limit=0 comment="default unmarked upload unlimit"
# 创建子队列,限制tv的上传速度
/queue tree add name="upload-limit-tv" parent=parent-queue-marked packet-mark=upload-limit-tv max-limit=1M comment="tv traffic limit 1M"
# 为未标记流量创建子队列
/queue tree add name="unmarked-traffic" parent=parent-queue-unmarked max-limit=0 comment="unmarked traffic unlimit"
|
如果还有IPV6流量的话
1
2
3
4
| /ipv6 firewall mangle add chain=prerouting src-address=2001:db8::240 action=mark-packet new-packet-mark=upload-limit-tv
# 标记测试设备的IPv6上传流量
/ipv6 firewall mangle add chain=prerouting src-address=2001:db8::107 action=mark-packet new-packet-mark=upload-limit-test
|
关键的设置就是max-limit=1M
,给打了标记的这部分流量设置一个上限。
这里分为父队列和子队列。其实可以方便的配置多种策略。如果有多台设备,也可以通过策略组合来实现父队列限制多少,某一个或几个设备限制多少。
然后用测试网站测试成功以后,就可以把自己的电脑的子队列删除了。大功告成。