centos7 · 2024年5月24日

TC控制本机的上行带宽

1.用TC控制网络延时。具体来说就是控制本机处理一个数据报文的时延,也就是rtt。

sudo tc qdisc add dev eth0 root netem delay 1000ms //设置1秒的延时
sudo tc qdisc del dev eth0 root netem delay 1000ms //取消设置

设置成功后,可以简单的从其他机器上ping一下这台机器,你会看到ping的response time是1秒左右。

 

2.控制丢包率:
sudo tc qdisc add dev eth0 root netem loss 10% //设置本机丢包率10%
sudo tc qdisc del dev eth0 root netem loss 10% //取消设置

设置成功后,向这台机器发送的数据包,有10%左右的丢包率。

 

3.控制本机的上行带宽。(经常用来控制一台服务器对外提供下载的总流量限制)

sudo tc qdisc add dev eth0 root tbf rate 5800kbit latency 50ms burst 1540 //带宽限制5800kbit

sudo tc qdisc del dev eth0 root tbf rate 5800kbit latency 50ms burst 1540 //取消限制

 

4.从服务器上,控制某一台client的下载带宽.(经常用来在服务器上设置,控制某一台client的下载流量。)

登录到服务器上,目的是控制ip为1.1.1.21 到本服务器的下载带宽为 5120kbit。

sudo tc qdisc add dev eth0 root handle 2: htb
sudo tc class add dev eth0 parent 2: classid 2:1 htb rate 5120kbit
sudo tc class add dev eth0 parent 2:1 classid 2:21 htb rate 5120kbit ceil 6000kbit burst 100k
sudo tc qdisc add dev eth0 parent 2:21 handle 21: sfq
sudo tc filter add dev eth0 parent 2:0 protocol ip prio 4 u32 match ip dst 1.1.1.21 flowid 2:21