Request: Non-VPN mode

Open
#395 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python
Domain
networking

Research direction

The issue points to the README and the how-it-works documentation but names no source file or test. Start by tracing the client entry point and existing forwarding path, then determine how a client-only SOCKS4 mode would fit. Done means a documented standalone mode that provides the requested SOCKS4 server without requiring VPN-style operation.

Written by the indexing model from the issue text.

Description

Hi,

I readed the documentation multiple times. In special this part: https://sshuttle.readthedocs.io/en/stable/how-it-works.html
where it comments: "sshuttle assembles the TCP stream locally, multiplexes it statefully over an ssh session, and disassembles it back into packets at the other end. So it never ends up doing TCP-over-TCP. It’s just data-over-TCP, which is safe".

So, compared to a simple "ssh -D 1080" command the shuttle improves the performance using some techniques to multiplexing different flows and assign to it different queues.

However, in the README page this project comments:
"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."
And I'm one of these users that don't want to use VPNs to connect to some remote networks. I prefer to use simple port forwadings with tunnels.

However the performance of sshuttle is better than the simple "ssh -D 1080". So assuming this... Why not implement an standalone (aka non-VPN) mode? Please, note that this request is related only to the client part. The idea is to open a simple SOCKS4 server in the client machine.

Please consider this idea.
Regards.

Dominant language
Python
Stars
13.6k
Forks
795
Avg merge
8h 49m
Merged PRs (30d)
12

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sshuttle/sshuttle

All issues in sshuttle/sshuttle

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.