44
55` wush ` is a command line tool that lets you easily transfer files and open
66shells over a peer-to-peer wireguard connection. It's similar to
7- [ magic-wormhole] ( https://github.com/magic-wormhole/magic-wormhole ) but doesn't
8- require you to set up or trust a relay server for authentication.
7+ [ magic-wormhole] ( https://github.com/magic-wormhole/magic-wormhole ) but:
8+
9+ 1 . No requirement to set up or trust a relay server for authentication.
10+ 1 . Powered by Wireguard for secure, fast, and reliable connections.
11+ 1 . Automatic peer-to-peer connections over UDP.
12+ 1 . Endless possibilities; rsync, ssh, etc.
913
1014## Basic Usage
1115
@@ -53,6 +57,8 @@ servers, instead using x25519 keys to authenticate incoming connections. Auth
5357keys generated by ` wush receive` are separated into a couple parts:
5458
5559` ` ` text
60+ 112v1RyL5KPzsbMbhT7fkEGrcfpygxtnvwjR5kMLGxDHGeLTK1BvoPqsUcjo7xyMkFn46KLTdedKuPCG5trP84mz9kx
61+
5662+---------------------+------------------+---------------------------+----------------------------+
5763| UDP Address (1-19B) | DERP Region (2B) | Server Public Key (32B) | Sender Private Key (32B) |
5864+---------------------+------------------+---------------------------+----------------------------+
@@ -61,11 +67,12 @@ keys generated by `wush receive` are separated into a couple parts:
6167` ` `
6268
6369Senders and receivers communicate over what we call an " overlay" . An overlay
64- runs over one of two currently implemented mediums; UDP or DERP. Each message is
65- encrypted with the sender' s private key.
70+ runs over one of two currently implemented mediums; UDP or DERP. Each message
71+ over the relay is encrypted with the sender' s private key.
6672
6773**UDP**: The receiver creates a NAT holepunch to allow senders to connect
68- directly. Wireguard nodes are exchanged peer-to-peer.
74+ directly. Wireguard nodes are exchanged peer-to-peer. This mode will only work
75+ if the receiver doesn' t have hard NAT.
6976
7077** DERP** : The receiver connects to the closet DERP relay server. Wireguard nodes
7178are exchanged through the relay.
@@ -74,3 +81,18 @@ In both cases auth is handled the same way. The receiver will only accept
7481messages encrypted from the sender' s private key, to the server' s public key.
7582
7683# # Why create another file transfer tool?
84+
85+ Lots of great file tranfer tools exist, but they all have some limitations:
86+
87+ 1. Slow speeds due to relay servers.
88+ 1. Trusting a 3rd party server for authentication.
89+ 1. Limited to only file transfers.
90+
91+ We sought to utilize advancements in userspace networking brought about by
92+ Tailscale to create a tool that could solve all of these problems, and provide
93+ way more functionality.
94+
95+ # # Acknowledgements
96+
97+ 1. [Tailscale](https://tailscale.com)
98+ 1. [Wireguard-go](https://github.com/WireGuard/wireguard-go)
0 commit comments