当前位置:操作系统 > Unix/Linux >>

Linux中最简单的总带宽限制

最简单的总带宽限制(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

  

上一个:Linux下负载均衡器LVS简单设置
下一个:轻松解决Linux操作系统故障恢复技巧

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,