小樱 发表于 2022/1/5 04:17

Linux centos 模拟网络丢包与延迟的方法,丢包3%和增加350ms

Linux centos 模拟网络丢包与延迟的方法,丢包3%和增加350ms

模拟丢包
下面命令可以模拟丢包,从 eth0 网口出去的包将随机丢失 3%:
sudo tc qdisc add dev eth0 root netem loss 3%
模拟延迟
下面命令,从 eth0 网口出去的包将延迟 350ms:
sudo tc qdisc add dev eth0 root netem delay 350ms
特定场景下的丢包和延迟
注意,上面我们介绍的命令,是针对整个 eth0 网口起作用的,也就是说,只要是从 eth0 出去的所有的包,都会产生随机丢包或者延迟。但有时候,我们只想让丢包和延迟作用于某个目的地址,那要怎么做呢?
sudo tc qdisc add dev eth0 root handle 1: prio
sudo tc qdisc add dev eth0 parent 1:3 handle 30: netem loss 3% delay 350ms
sudo tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 199.91.72.192 match ip dport 36000 0xffff flowid 1:3
上面的命令,我们告诉 tc,对发往 199.91.72.192:36000 的网络包产生 3% 的丢包和 350ms 的延迟,而发往其它目的地址的网络包将不受影响。

删除规则
好了,模拟完丢包和延迟之后,要记得删除掉规则:
sudo tc qdisc del dev eth0 root

页: [1]
查看完整版本: Linux centos 模拟网络丢包与延迟的方法,丢包3%和增加350ms