第一个例子
- 增加延时
tc qdsic add dev enp0s3 root netem delay 200ms
-
qdisc : queuing discipline, 当内核需要发送包到某个接口时,它是被送到
qdis
配置的队列,然后 内核尽可能去从队列去获取最多的包,然后发送给网络驱动 -
root 表示树行的第一个节点,会影响之后的其他规则
-
netem 网络模拟, 允许添加延时,丢包率,重复包和其他外向数据
-
delay 这个命令可以延时
- 在添加规则前
netbeez.net$ ping google.com PING google.com (172.217.6.78) 56(84) bytes of data. 64 bytes from sfo07s17-in-f78.1e100.net (172.217.6.78): icmp_seq=1 ttl=53 time=11.9 ms 64 bytes from sfo07s17-in-f78.1e100.net (172.217.6.78): icmp_seq=2 ttl=53 time=12.0 ms
-
添加规则后
netbeez.net$ ping google.com PING google.com (172.217.5.110) 56(84) bytes of data. 64 bytes from sfo03s07-in-f14.1e100.net (172.217.5.110): icmp_seq=1 ttl=53 time=213 ms 64 bytes from sfo03s07-in-f14.1e100.net (172.217.5.110): icmp_seq=2 ttl=53 time=210 ms
可见增加的延时和配置的规则近一致
命令解释
查看规则:
tc qdisc show dev enp0s3
删除所有规则
tc qdisc delete dev enp0s3
添加丢包规则
tc qdisc add dec enp0s3 root netem loss 10%
出口网速限制
tc qdisc add dev enp0s3 root tbf rate 1mbit burst 32kbit latency 400ms
tc 通过 class, filter 进行规则匹配
添加一条限速规则
tc qdisc add dev enp0s3 root handle 1: htb r2q 1
tc class add dev enp0s3 parent 1 : classid 1:1 htb rate 10Mbit //rate 表示限制速率
tc filter add dev enp0s3 parent 1: protocol ip prio 16 u32 match ip dst 192.168.4.5 //dst 表示接收方,支持mask