explaingit

apenwarr/sshuttle

8,868PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

A lightweight tool that routes all your computer's network traffic through an SSH connection to a remote server, acting like a simple VPN without needing admin access on the remote side.

Mindmap

mindmap
  root((sshuttle))
    What it does
      Routes all traffic
      VPN alternative
      SSH tunneling
    How it works
      No admin needed
      Transparent routing
      pip install
    Platforms
      Linux
      macOS
      FreeBSD
    Use Cases
      Remote network access
      Bypass restrictions
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Route all traffic from your laptop through a remote server you already have SSH access to, without configuring a full VPN.

USE CASE 2

Access internal company resources securely from home using only an existing SSH connection.

USE CASE 3

Bypass geographic restrictions by tunneling traffic through a server in another country via SSH.

Tech stack

PythonSSHpip

Getting it running

Difficulty · easy Time to first run · 5min

Active development has moved to github.com/sshuttle/sshuttle, this original repo is kept for historical reference only.

License not mentioned in the explanation.

In plain English

sshuttle is a tool that routes your computer's network traffic through an SSH connection to a remote server, functioning like a lightweight VPN without requiring administrator access on the remote side. The README describes it as sitting somewhere between a VPN and a standard SSH port forward. The problem it solves is a common one: you have SSH access to a remote server or network, but you want all traffic from your local machine to flow through that remote connection, not just traffic to a single port. Standard SSH port forwarding requires you to set up a separate forwarding rule for each host and port you want to reach. A full VPN typically requires administrator access and complex configuration on both sides. sshuttle requires only that you can connect to the remote machine via SSH, and it handles routing the traffic transparently from your local machine. It is designed for Linux, FreeBSD, and macOS on the client side. Installation is through pip, the standard Python package manager. The README is brief and points to external documentation at sshuttle.readthedocs.org for full usage details. Note: this repository is described in its own README as the wrong location. The project has moved to github.com/sshuttle/sshuttle, which is where active development continues. This original repository by the project's creator appears to be kept for historical reference.

Copy-paste prompts

Prompt 1
Show me the sshuttle command to route all my internet traffic through a remote server at [email protected] while keeping local network traffic unaffected.
Prompt 2
How do I use sshuttle to access only a specific private subnet like 10.0.0.0/8 through an SSH jump host, without routing all other traffic?
Prompt 3
What is the difference between sshuttle and using SSH's built-in SOCKS proxy with the -D flag? When would I choose one over the other?
Prompt 4
How do I install sshuttle with pip and confirm it is routing my traffic correctly after connecting?
Open on GitHub → Explain another repo

← apenwarr on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.