百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
W

wush

> 编程语言
开源

通过 WireGuard 在计算机之间传输文件的最简单、最快的方法

1.5K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

通过 WireGuard 在计算机之间传输文件的最简单、最快的方法

wush

wush is a command line tool that lets you easily transfer files and open shells over a peer-to-peer WireGuard connection. It's similar to magic-wormhole but:

  1. No requirement to set up or trust a relay server for authentication.
  2. Powered by WireGuard for secure, fast, and reliable connections.
  3. Automatic peer-to-peer connections over UDP.
  4. Endless possibilities; rsync, ssh, etc.

Basic Usage

On the host machine:

$ wush serve
Picked DERP region Toronto as overlay home
Your auth key is:
    >  112v1RyL5KPzsbMbhT7fkEGrcfpygxtnvwjR5kMLGxDHGeLTK1BvoPqsUcjo7xyMkFn46KLTdedKuPCG5trP84mz9kx
Use this key to authenticate other wush commands to this instance.

On the client machine:

# Copy a file to the host
$ wush cp 1gb.txt
Uploading "1gb.txt" 100% |██████████████████████████████████████████████| (2.1/2.1 GB, 376 MB/s)

# Open a shell to the host
$ wush ssh
┃ Enter the Auth key:
┃ > 112v1RyL5KPzsbMbhT7fkEGrcfpygxtnvwjR5kMLGxDHGeLTK1BvoPqsUcjo7xyMkFn46KLTdedKuPCG5trP84mz9kx
coder@colin:~$

[!NOTE]
wush uses Tailscale's tsnet package under the hood, managed by an in-memory control server on each CLI. We utilize Tailscale's public DERP relays, but no Tailscale account is required.

Install

Using install script

curl -fsSL https://github.com/coder/wush/raw/refs/heads/main/install.sh | sh

Using Homebrew

brew install wush

For a manual installation, see the latest release.

[!TIP] To increase transfer speeds, wush attempts to increase the buffer size of its UDP sockets. For best performance, ensure wush has CAP_NET_ADMIN. When using the installer script, this is done automatically for you.

# Linux only
sudo setcap cap_net_admin=eip $(which wush)

Technical Details

wush doesn't require you to trust any 3rd party authentication or relay servers, instead using x25519 keys to authenticate incoming connections. Auth keys generated by wush serve are separated into a couple parts:

…

Senders and receivers communicate over what we call an "overlay". An overlay runs over one of two currently implemented mediums; UDP or DERP. Each message over the relay is encrypted with the sender's private key.

UDP: The receiver creates a NAT holepunch to allow senders to connect directly. WireGuard nodes are exchanged peer-to-peer. This mode will only work if the receiver doesn't have hard NAT.

DERP: The receiver connects to the closet DERP relay server. WireGuard nodes are exchanged through the relay.

In both cases auth is handled the same way. The receiver will only accept messages encrypted from the sender's private key, to the server's public key.

Why create another file transfer tool?

Lots of great file tranfer tools exist, but they all have some limitations:

  1. Slow speeds due to relay servers.
  2. Trusting a 3rd party server for authentication.
  3. Limited to only file transfers.

We sought to utilize advancements in userspace networking brought about by Tailscale to create a tool that could solve all of these problems, and provide way more functionality.

Acknowledgements

  1. Tailscale
  2. Headscale
  3. WireGuard-go

GitHub Issues· 21 开放

在 GitHub 查看全部
  • #119

    Android client

    更新于 2025年12月26日
  • #118

    vulnerability in wush project

    更新于 2025年12月5日
  • #117

    Ephemeral browser based session

    更新于 2025年10月30日
  • #116

    Copy file from remote to local? (question)

    更新于 2025年10月19日
  • #115

    Q: Does `--enable=cp` allow only `wush cp`, or are other `wush` commands also allowed?

    更新于 2025年9月3日
  • #113

    wush url format on command line not proper? slash missing before first hash sign

    更新于 2025年8月30日

核心特点

  • •Go
  • •file-transfer
  • •go
  • •peer-to-peer
  • •wireguard

> 标签

Gofile-transfergopeer-to-peerwireguard

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言