Originally published on eve.gd on 2 March 2010, last updated 6 September 2026.
Read this post on the web (with images, PDF and citation details)
Introducing sshsplit
sshsplit is a GPL-3 licensed application that multiplexes ssh dynamic tunnels.
</img>
For example, you might normally run:
ssh -D 54321 remote-host
to get a tunnel on 127.0.0.1:54321 that goes through remote-host.
However, if you are using a network-resource-intensive application (torrent clients for example), this single tunnel will not suffice for, say, 1000 concurrent connections.
sshsplit launches several instances of the ssh dynamic tunnel and then load balances between them.
If no arguments are passed, sshsplit launches the configuration GUI. Otherwise, for help, run: sshsplit -h
sshsplit can also be configured to use any binary you would like and you can suppress the default arguments it passes (-ND ) using the -S option.</p>
</img>
The code, my first effort in python, is available at the sshsplit launchpad home.
There is also a ppa that you can use to install sshsplit on Ubuntu machines on my launchpad page.
Please report any bugs to launchpad!
the sshsplit launchpad home
my launchpad page
This reference list has been generated, in many cases, through an automated process and may therefore contain errors or incomplete metadata. It is provided purely as assistance for finding the items mentioned within this post.
1. ‘sshsplit’, Launchpad <https://launchpad.net/sshsplit>
2. sshsplit screenshot 1 on pro.grammatic.org <http://pro.grammatic.org/sshsplit/sshsplit-screen1.png>