Linux中最简单的总带宽限制

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

最简单的总带宽限制(tc脚本,每个主流linux都有tc和iptable,cp到一个文件赋予x权限,执行就ok)....根据pureftp的faq中带宽限制得来的...

#! /bin/sh

# Simple bandwidth limiter -

# Change this to your link bandwidth

# (for cable modem, DSL links, etc. put the maximal bandwidth you can

# get, not the speed of a local Ethernet link)

REAL_BW='10Mbit'

# Change this to the bandwidth you want to allocate to FTP.

# We're talking about megabits, not megabytes, so 80Kbit is

# 10 Kilobytes/s

FTP_BW='7200Kbit' //总带宽

# Change this to your physical network device (or 'ppp0')

NIC='eth0'

# Change this to the ports you assigned for passive FTP

FTP_PORT_LOW="10000" //passive端口低限

FTP_PORT_HIGH="11000" //passive端口上限

tc qdisc del dev "$NIC" root 2 /dev/null //清除tc队列中关于网卡的设置

//(hunreal修改)

tc qdisc add dev "$NIC" root handle 1: cbq bandwidth "$REAL_BW" avpkt 1000

tc class add dev "$NIC" parent 1: classid 1:1 cbq bandwidth "$REAL_BW" rate "$REAL_BW" maxburst 5 avpkt 1000

tc class add dev "$NIC" parent 1:1 classid 1:10 cbq bandwidth "$REAL_BW" rate "$FTP_BW" maxburst 5 avpkt 1000 bounded

tc qdisc add dev "$NIC" parent 1:10 sfq quantum 1514b

tc filter add dev "$NIC" parent 1: protocol ip handle 1 fw flowid 1:10

iptables -t mangle -A OUTPUT -p tcp --sport 20:1221 -j MARK --set-mark 1

//上面的1221是ftp的端口号

iptables -t mangle -A OUTPUT -p tcp --sport "$FTP_PORT_LOW":"$FTP_PORT_HIGH" -j MARK --set-mark 1

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航