A peer-to-peer mesh VPN with zero infrastructure. Create a private
network, share a code, and your machines reach each other as if they
were on the same LAN. No servers to run, no ports to forward, no static
IPs to manage.
Rayfish network members use a private TLD of ".ray".
The easiest way to make these DNS lookups work is to activate the
local_unbound service and add a custom forwarder configuration with
DNSSEC validation disabled for these domains:
# /var/unbound/conf.d/rayfish.conf
server:
domain-insecure: "ray."
forward-zone:
name: "ray."
forward-addr: 200::53
This IPv6 address will be respond to DNS requests when Rayfish is running.
The "ray dns on" command will automate this for you.
net/rayfish: port to other 64-bit platforms
route_manager-0.2.13: sin_zero: [0i8; 8] against a [c_char; 8] field.
Fixed with [0; 8].
tun-rs-2.8.9: imports libc::KINFO_FILE_SIZE, which libc defines only
for x86. Fixed by setting kf_structsize from size_of::<kinfo_file>().
The size is 1392 on powerpc64le from both the C header and the built
libc rlib, and the kernel accepts exactly that value.
net/rayfish: New port
Rayfish is a peer-to-peer mesh VPN for your computers, phones, servers,
and friends' machines. It creates encrypted private networks without an
account, control server, or infrastructure to host.
Peers connect directly when possible and use encrypted relays when they
cannot. Each device has a stable address derived from its cryptographic
identity, plus a name such as alice.gaming.ray through Magic DNS.