As far as I know, sshuttle is the only program that solves the following common case:
Ubuntu 16.04 or later:
apt-get install sshuttle
Debian stretch or later:
apt-get install sshuttle
Arch Linux:
pacman -S sshuttle
Fedora:
dnf install sshuttle
openSUSE:
zypper in sshuttle
Gentoo:
emerge -av net-proxy/sshuttle
NixOS:
nix-env -iA nixos.sshuttle
From PyPI:
sudo pip install sshuttle
Clone:
git clone https://github.com/sshuttle/sshuttle.git cd sshuttle sudo ./setup.py install
FreeBSD:
# ports cd /usr/ports/net/py-sshuttle && make install clean # pkg pkg install py39-sshuttle
OpenBSD:
pkg_add sshuttle
macOS, via MacPorts:
sudo port selfupdate sudo port install sshuttle
It is also possible to install into a virtualenv as a non-root user.
From PyPI:
virtualenv -p python3 /tmp/sshuttle . /tmp/sshuttle/bin/activate pip install sshuttle
Clone:
virtualenv -p python3 /tmp/sshuttle . /tmp/sshuttle/bin/activate git clone https://github.com/sshuttle/sshuttle.git cd sshuttle ./setup.py install
Homebrew:
brew install sshuttle
Nix:
nix-env -iA nixpkgs.sshuttle
The documentation for the stable version is available at: https://sshuttle.readthedocs.org/en/latest/
Sshuttle can also be run as a service and configured using a config management system: /daa20/sshuttle