Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling.
Go to file
2025-02-24 07:54:01 +11:00
.github fix: remove temp build hack 2025-02-08 09:59:46 +11:00
docs docs: update installation instructions 2025-02-23 20:38:07 +11:00
scripts fix: Add support for Python 3.11 and Python 3.11 2025-02-06 09:09:50 +11:00
sshuttle fix: support ':' sign in password 2025-02-22 08:23:36 +11:00
tests feat: switch to a network namespace on Linux 2025-02-09 08:48:55 +11:00
.envrc Add experimental peotry and nix flake stuff 2024-02-19 11:21:31 +11:00
.gitignore Add experimental peotry and nix flake stuff 2024-02-19 11:21:31 +11:00
.prospector.yml Fixes some style issues and minor bugs 2017-11-13 11:58:43 +11:00
.readthedocs.yaml fix: replace requirements.txt files with poetry (4) 2025-02-06 16:48:22 +11:00
.tool-versions Add ASDF .tool-versions file 2022-09-06 08:06:34 +10:00
bandit.yml updated bandit config 2018-10-17 20:52:04 +11:00
CHANGELOG.md chore(master): release 1.3.0 2025-02-24 07:54:01 +11:00
CHANGES.rst Move release notes to github 2022-01-28 09:27:47 +11:00
flake.lock fix: update nix flake to fix problems 2025-02-06 08:52:31 +11:00
flake.nix fix: update nix flake to fix problems 2025-02-06 08:52:31 +11:00
LICENSE Change license text to LGPL-2.1 2020-08-26 12:25:36 -04:00
MANIFEST.in Fix error in requirements.rst 2017-07-09 09:08:48 +10:00
poetry.lock build(deps-dev): bump flake8 from 7.1.1 to 7.1.2 2025-02-18 08:11:24 +11:00
pyproject.toml chore(master): release 1.3.0 2025-02-24 07:54:01 +11:00
README.rst docs: update installation instructions 2025-02-23 20:38:07 +11:00
run Fix shellcheck warnings 2021-09-22 12:36:27 +00:00
setup.cfg chore(master): release 1.3.0 2025-02-24 07:54:01 +11:00
tox.ini fix: Add support for Python 3.11 and Python 3.11 2025-02-06 09:09:50 +11:00

sshuttle: where transparent proxy meets VPN meets ssh
=====================================================

As far as I know, sshuttle is the only program that solves the following
common case:

- Your client machine (or router) is Linux, FreeBSD, MacOS or Windows.

- You have access to a remote network via ssh.

- You don't necessarily have admin access on the remote network.

- The remote network has no VPN, or only stupid/complex VPN
  protocols (IPsec, PPTP, etc). Or maybe you *are* the
  admin and you just got frustrated with the awful state of
  VPN tools.

- You don't want to create an ssh port forward for every
  single host/port on the remote network.

- You hate openssh's port forwarding because it's randomly
  slow and/or stupid.

- You can't use openssh's PermitTunnel feature because
  it's disabled by default on openssh servers; plus it does
  TCP-over-TCP, which has `terrible performance`_.

.. _terrible performance: https://sshuttle.readthedocs.io/en/stable/how-it-works.html

Obtaining sshuttle
------------------

Please see the documentation_.

.. _Documentation: https://sshuttle.readthedocs.io/en/stable/installation.html

Documentation
-------------
The documentation for the stable version is available at:
https://sshuttle.readthedocs.org/

The documentation for the latest development version is available at:
https://sshuttle.readthedocs.org/en/latest/


Running as a service
--------------------
Sshuttle can also be run as a service and configured using a config management system:
https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe