Skip to content

SOCKS5 layer#318

Merged
noahlevenson merged 4 commits into
mainfrom
nelson/socks5
Nov 16, 2025
Merged

SOCKS5 layer#318
noahlevenson merged 4 commits into
mainfrom
nelson/socks5

Conversation

@noahlevenson

Copy link
Copy Markdown
Contributor

This PR introduces a SOCKS5 proxy transport. Now you can use Unbounded anywhere you can use a SOCKS5 proxy.

Context:

The Unbounded protocol does not specify an end-to-end proxy protocol. Rather, the Unbounded protocol simply specifies a multiplexed stream oriented tunnel -- which happens to be a peer-to-peer tunnel over ephemeral volunteer transports -- that can move bytes from one place to another. If you want to actually proxy those bytes, you need to bolt a chained proxy protocol over the tunnel.

Historically, we've bolted an HTTP proxy over the Unbounded tunnel, and that's how we've used Unbounded as part of our censorship circumvention stack. Unbounded ships with an HTTP transport for this purpose.

Now Unbounded also ships with a SOCKS5 transport. Specifically, a SOCKS5 transport that works well with armon/go-socks5. But it would be relatively trivial to port the transport to other SOCKS5 servers.

@noahlevenson noahlevenson merged commit f03a03b into main Nov 16, 2025
1 check passed
@noahlevenson noahlevenson deleted the nelson/socks5 branch November 16, 2025 00:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant