Linux下限制端口速度的方法

一些测试场景下,需要模拟端口拥堵的情况,为此,需要限制某个业务端口的速度,从而模拟端口网络拥塞的情况。

开始以为iptables可以限速,发现iptables只能限制到网络包上数量级别,并不能达到模拟网络拥塞的长时间不返回的场景。

搜索、尝试后,发现TC+iptables可以完美实现想要的目的。

tc是系统层的命令,通常安装完都会有。

假设要限速的端口是9000,对应的网卡为eth0,要限制9000端口速度,以此执行以下命令:

tc qdisc add dev eth0 root handle 1:0 htb default 1
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Kbit
tc class add dev eth0 parent 1:1 classid 1:100 htb rate 100bit
tc qdisc add dev eth0 parent 1:100 handle 10: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 10 fw classid 1:100
iptables -A OUTPUT -t mangle -p tcp --sport 9000 -j MARK --set-mark 10
SuSEfirewall2 stop
SuSEfirewall2 start

这是再访问9000端口的业务,会处于加载中,直到超时。

删除限速:

tc qdisc del dev eth0 root handle 1:0
SuSEfirewall2 stop
SuSEfirewall2 start

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值