利用tc限制两台服务器间的网速

记录一个在linux环境下,利用tc限制两台服务器间的网速的脚本

本地需要模拟生产环境外网出口带宽瓶颈的场景,所以想要限制一下两台机器之间的网速。

#!/bin/bash
#  tc uses the following units when passed as a parameter.
#  kbps: Kilobytes per second 
#  mbps: Megabytes per second
#  kbit: Kilobits per second
#  mbit: Megabits per second
#  bps: Bytes per second 
#       Amounts of data can be specified in:
#       kb or k: Kilobytes
#       mb or m: Megabytes
#       mbit: Megabits
#       kbit: Kilobits
#  To get the byte figure from bits, divide the number by 8 bitTC=/sbin/tc
IF=eth0             # Interface 
DNLD=1mbit          # DOWNLOAD Limit
UPLD=1mbit          # UPLOAD Limit 
IP=127.0.0.1        # Host IP
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"start() {$TC qdisc add dev $IF root handle 1: htb default 30$TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD$TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD$U32 match ip dst $IP/32 flowid 1:1$U32 match ip src $IP/32 flowid 1:2}stop() {$TC qdisc del dev $IF root}restart() {stopsleep 1start}show() {$TC -s qdisc ls dev $IF}case "$1" instart)echo -n "Starting bandwidth shaping: "startecho "done";;stop)echo -n "Stopping bandwidth shaping: "stopecho "done";;restart)echo -n "Restarting bandwidth shaping: "restartecho "done";;show)echo "Bandwidth shaping status for $IF:\n"showecho "";;*)pwd=$(pwd)echo "Usage: $(/usr/bin/dirname $pwd)/tc.bash {start|stop|restart|show}";;esacexit 0


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部