Article Title: Linux server site traffic limit solution. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.
#! /Bin/sh
# Simple bandwidth limiter-<[email] j@4u.net [/email]>
# 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 WEB.
# We're talking about megabits, not megabytes, so 80 Kbit is
#10 Kilobytes/s
WEB_BW = '1000kbit'
# Change this to your physical network device (or 'ppp0 ')
NIC = 'eth0'
Tc qdisc del dev "$ NIC" root 2>/dev/null
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 1 avpkt 1000
Tc class add dev "$ NIC" parent classid cbq \
Bandwidth "$ REAL_BW" rate "$ WEB_BW" maxburst 1 avpkt 1000 bounded
Tc qdisc add dev "$ NIC" parent :10 sfq perturb 10
Tc filter add dev "$ NIC" parent 1: protocol ip handle 1 fw classid :10
Iptables-t mangle-a output-p tcp -- sport 80-j MARK -- set-mark 1