Linux 如何对某个 IP 进行上传与下载的限速。

59 天前
Shadowxxx  Shadowxxx

如题,linux 如何对某个 IP 进行上传与下载的限速。

1852 次点击
所在节点   Linux  Linux
13 条回复
Yien
Yien
59 天前
TC
tool2dx
tool2dx
59 天前
if (ip == block_ip) then drop_package_random();

UDP 不好限速,只能随机掉包。
Shadowxxx
Shadowxxx
59 天前
@Yien 我知道 tc ,具体点。
GeekGao
GeekGao
59 天前
Yien
Yien
59 天前
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 2Mbps ceil 2Mbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 2Mbps ceil 2Mbps
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 10.0.0.100 flowid 1:10
Shadowxxx
Shadowxxx
59 天前
@Yien 上传和下载都能限制?
wangyzj
wangyzj
59 天前
@Yien #1 正解
Shadowxxx
Shadowxxx
59 天前
@wangyzj 没法限制下载的。
Shadowxxx
Shadowxxx
58 天前
谁能指导下怎么限制下行速度
PTLin
PTLin
58 天前
这问题挺感兴趣特意查了下。
一般只能对发送队列进行整形,对接收方向的整形没意义,所以想要限制下载速度需要模拟一个虚拟的发送设备,对这个发送设备限流,然后进行重定向。
具体做法首先就是要有 ifb 功能,可以 build 在内核中或者编译成模块,然后使用以下命令。
modprobe ifb
ip link add dev ifb0 up type ifb
tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 10
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1000mbit
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10mbit ceil 10mbit
piero66
piero66
57 天前
tc + ifb
Shadowxxx
Shadowxxx
57 天前
@PTLin 我都试过了,效果并不好。
DefoliationM
57 天前
新建一个 tun 网卡,要限速的路由到 tun 网卡,限速逻辑自己写。

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

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

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

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

© 2021 V2EX