Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am using an OpenSSH server for a client app that uses the traffic forwarding, SSH tunnelling and some users are consuming an extraordinary amount of bandwidth. Is there a way to shape the traffic on SSH port output or SSH/TCP/IP Session and make sure that the fair amount of bandwidth gets distributed for each connected user?

I have come across of this site and modified the script, but I was wondering if there is a better solution to resolve the occurred problem.

tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 4096kbps
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 2048kbps ceil 2208kbps prio 1
tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 5 fw flowid 1:5

iptables -A OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 5
share|improve this question
@Braiam yes, but i wasn't quite sure if the wondershaper would fit the purpose on the out going traffic! wondershaper clear eth0 && wondershaper eth0 4096 1024 – Mantichora Apr 29 '14 at 14:47

Instead of burring your head in the complicated tc I recommend you using wondershaper. It configures the optimal options both outgoing and incoming traffic by default. The syntax is simple enough. Just verify the device you want to configure such eth0, calculate the raw uplink and downlink bits. Normally network providers supply bits as measure, like "1 Mbps" or "512Kbps" so it's simple. In case of doubt check with your ISP. For each system just install wondershaper:

sudo apt-get install wondershaper

Run wondershaper as root and determine how much broadband will be given to each system:

sudo wonderwhaper eth0 1000 500

In the above example I gave limits to eth0 device of 1,000 kilo bits downstream and 500 kilo bits upstream. Is recommended to leave some space of breath between the maximum raw speed and the limited.

share|improve this answer
Thanks for the reply. I've tried this before as you see in my last reply with not much of luck. Just on the configuration side, shouldn't the value of upload set to higher rather than download on the SSH reverse situation as the users are tunnelling the traffic through the server? – Mantichora Apr 29 '14 at 15:16
@Iman no, it should reflect your real up/downlink speed. Those numbers are meant to be calculated based on them, not out of thin air ;). – Braiam Apr 29 '14 at 15:32
aggregate of 100Mbit/s of traffic per VPS is given and I believe it is a reasonable limit but it really does depend on a lot of factors. However, would wonderwhaper be able to help assuring the limit of 2Mbps download rate and 512Kbps upload for each connected client to the VPS server? i.e wondershaper eth0 2048 512 – Mantichora Apr 29 '14 at 15:48
@Iman of course. It may degrade somehow the clients speed, but that's expected. – Braiam Apr 29 '14 at 16:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.