Skip to main content

Wultiplexor

What?

Wultiplexor is a reverse proxy server and client that uses websockets to multiplex tcp connections or unix sockets. You can use it to forward connections from one machine to another both behind NAT or firewall.

How?

Diagram

Why?

In the beginning, I had needed to redirect a unix socket for one specific application. Later I implemented this in a general way.

Deploy server using docker compose

docker network create wultiplexor
DOMAIN=wultiplexor.example.com ACME_EMAIL=acme@example.com SECRET=sEcReTkEy docker compose -p wultiplexor -f compose.yaml up --build -d

WARNING: The server is not intended to be used "as is" in a public accessible infrastructure. Use a reverse proxy like Traefik to secure the connection like I did in the compose.yaml file.

Install the client utility

pip install wultiplexor

Usage: Forward tcp port

  • On one machine, called the server or acceptor:
whannel ws://example.com/ acceptor -s sEcReTkEy localhost 8080 sEcReTGaTeWaYnAmeE
nc -l 8080
  • On another machine, called client or requestor:
whannel ws://example.com/ requestor sEcReTGaTeWaYnAmeE 9090
nc localhost 9090

And now you can chat between two machines.

Usage: Forward unix socket file

  • On one machine, called the server or acceptor:
whannel wss://example.com/ sock-acceptor -s sEcReTkEy ./server sEcReTGaTeWaYnAmeE
socat UNIX-LISTEN:./server,fork STDIO
  • On another machine, called client or requestor:
whannel wss://example.com/ sock-requestor sEcReTGaTeWaYnAmeE ./client
socat STDIO UNIX-CONNECT:./client

And now you can chat between two machines.

Mixed usage

You can mix unix sockets and tcp ports. To do that, use tcp-acceptor from one side and sock-requestor from the another. Or vice versa. This is also a way to "convert" a unix socket to a tcp port on the same machine.

Metadata

Release files for wultiplexor 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wultiplexor 0.1.0
File Size Uploaded
wultiplexor-0.1.0.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wultiplexor 0.1.0
File Interpreter ABI Platform
wultiplexor-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.1 kB

Release files / wultiplexor-0.1.0.tar.gz

Download URL wultiplexor-0.1.0.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ab20dc13866555fa98d6874c29bf6b19587bc5f4a3c1ce14293985a88877700f
BLAKE2b-256 checksum
How to use checksums
f62fffe581cc7df6b66557b117ee5cec9d48290e98a4c5d4dc2ed441f1f7bd5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.12.4 CPython/3.12.2

Release files / wultiplexor-0.1.0-py3-none-any.whl

Download URL wultiplexor-0.1.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99b403defbb6917f41f4e87aa6988b9bde52d4aa2254c76d23c2b2de6186a7f0
BLAKE2b-256 checksum
How to use checksums
9c6aad6bef390679d3c8271842a4a1b5a2d788bb6873ade5560e8177d6a2aece
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.12.4 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page