4
4
5
5
` wush ` is a command line tool that lets you easily transfer files and open
6
6
shells 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.
9
13
10
14
## Basic Usage
11
15
@@ -53,6 +57,8 @@ servers, instead using x25519 keys to authenticate incoming connections. Auth
53
57
keys generated by ` wush receive` are separated into a couple parts:
54
58
55
59
` ` ` text
60
+ 112v1RyL5KPzsbMbhT7fkEGrcfpygxtnvwjR5kMLGxDHGeLTK1BvoPqsUcjo7xyMkFn46KLTdedKuPCG5trP84mz9kx
61
+
56
62
+---------------------+------------------+---------------------------+----------------------------+
57
63
| UDP Address (1-19B) | DERP Region (2B) | Server Public Key (32B) | Sender Private Key (32B) |
58
64
+---------------------+------------------+---------------------------+----------------------------+
@@ -61,11 +67,12 @@ keys generated by `wush receive` are separated into a couple parts:
61
67
` ` `
62
68
63
69
Senders 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.
66
72
67
73
**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.
69
76
70
77
** DERP** : The receiver connects to the closet DERP relay server. Wireguard nodes
71
78
are exchanged through the relay.
@@ -74,3 +81,18 @@ In both cases auth is handled the same way. The receiver will only accept
74
81
messages encrypted from the sender' s private key, to the server' s public key.
75
82
76
83
# # 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