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