Your machines, on one private network, wherever they are.
Rada connects your laptops, servers and devices into a private, encrypted network. They can reach each other by name, through home routers and mobile networks, with no ports to open and no VPN server to run. Thanks for helping test it.
What Rada does
Each machine running Rada gets a stable private address such as 100.96.0.7 and a name such as your-laptop.rada.internal. Any two machines that are allowed to talk can reach each other directly, as if they were on the same network, even when both are behind home routers, office firewalls or a phone hotspot.
- Encrypted end to end. All traffic between machines uses WireGuard. Nobody in between, including the Rada servers, can read it.
- Works through NAT. Machines find a direct path when the network allows it. When it doesn't, traffic goes through a relay over HTTPS port 443, which works almost everywhere.
- Names, not addresses.
ssh my-serverandhttp://my-laptop:8000just work. - Access rules. An administrator decides who may reach whom, down to ports. A machine can be reachable without being able to reach anything back.
- Sign in with email. People sign in with their email and a 6-digit code. Machines without a person, such as servers and devices in the field, join with a one-time key.
How it works
- You sign in with your email. The control server checks you were invited, gives your machine its address and name, and tells it which other machines it may talk to.
- Machines find each other. Each one learns its own public address and shares it through the control server. Two machines then reach out to each other at the same moment, which opens a direct path through most home routers.
- Traffic flows directly and encrypted between the two machines. If a network blocks the direct path, the same encrypted traffic is carried by the relay instead, and Rada keeps trying to go direct.
- Rules are enforced on each machine. Even if a machine is visible, it only accepts the connections the rules allow, plus replies to connections it started.
The control server never sees your traffic. It knows your email, your machines' names, their Rada addresses and the public addresses they connect from.
Download
Version 0.1.0. Checksums: SHA256SUMS.
Install
macOS
- Download
Rada-0.1.0.pkgand double-click it. - This test build is not signed by Apple yet, so macOS will refuse to open it the first time. Open System Settings > Privacy & Security, scroll down, and click Open Anyway next to the Rada message. On macOS 14 and older you can instead right-click the file and choose Open.
- Follow the installer. It asks for your Mac password because it installs a background service.
- A Rada icon appears in the menu bar. Click it, enter your email, click Send code, and type the 6-digit code from the email from
login@radanet.io. Check your spam folder if it does not arrive within a minute. - The window shows your machine's name and address, and the other machines you can reach.
Linux (Ubuntu or Debian)
- Install the service:
curl -fLO https://get.radanet.io/0.1.0/radanet_0.1.0_amd64.deb sudo apt install ./radanet_0.1.0_amd64.deb - Sign in. You'll be asked for the 6-digit code sent to your email:
radanet login --email you@example.com - Optional, on a desktop: install the tray app, then open Rada from your applications.
curl -fLO https://get.radanet.io/0.1.0/Rada_0.1.0_amd64.deb sudo apt install ./Rada_0.1.0_amd64.deb
Check it's working
radanet status
You should see state running, your name and address, dns rada.internal, filter on, and a list of machines with their path: direct or relay.
End-to-end test plan
Do these together, one person on a Mac and one on Linux. Replace FRIEND with the other person's machine name from radanet status or the menu bar window.
| # | Test | How | Expected |
|---|---|---|---|
| 1 | See each other | Both run radanet status | Each lists the other as online |
| 2 | Reach by name | ping FRIEND | Replies. The short name and FRIEND.rada.internal both work |
| 3 | Direct or relay | Look at the path column in radanet status | Usually direct; relay 3 (ws) on strict networks. Both work |
| 4 | Share a web page | One runs python3 -m http.server 8000; the other opens http://FRIEND:8000 | The file list loads in the browser |
| 5 | SSH and copy a file | Turn on SSH (below), then ssh you@FRIEND and scp bigfile you@FRIEND: | Logs in; a 50 MB file copies without stalling |
| 6 | Change networks | Keep ping FRIEND running and switch to a phone hotspot | A few lost replies, then it recovers within about 40 seconds |
| 7 | Pause and resume | Toggle Connected in the menu bar, or radanet prefs --running false then true | The other person sees you go offline, then online again |
| 8 | Sign out and in | Menu bar settings, or radanet logout then radanet login --email ... | You get the same name and address back |
| 9 | Restart | Reboot your machine | Rada reconnects by itself without signing in again |
Turning on SSH for test 5. On Mac: System Settings > General > Sharing > Remote Login. On Ubuntu: sudo apt install openssh-server.
About access rules. Testers can reach each other freely. Ganesh's own machines are not open to testers, so trying to reach them is expected to fail.
If something goes wrong
Please send Ganesh what you were doing, what you expected, what happened, and these outputs:
radanet status
radanet logs
Full logs: macOS /var/log/radanet.log; Linux journalctl -u radanet --since "1 hour ago". If small transfers work but big ones stall, try radanet prefs --mtu 1200 and mention it in your report.
Things you could do with it
- Reach your home machine or Raspberry Pi from anywhere, without port forwarding or a dynamic DNS service.
- Show a work-in-progress website running on your laptop to a friend:
http://your-laptop:3000. - SSH into a cloud server that has no public SSH port at all.
- Copy files between your own machines across networks with
scporrsync. - Run a game server, a database or a dashboard and share it only with the people you choose.
How Rada compares with Tailscale
Tailscale is the best-known product of this kind, and Rada works on the same principles: WireGuard, a coordination server, NAT traversal and relays. Tailscale is mature and covers far more. Rada is aimed at fleets of machines such as vehicles, robots and edge devices, and at teams that want to run the whole system themselves.
| Rada 0.1 (this test) | Tailscale | |
|---|---|---|
| Encryption | WireGuard, end to end | WireGuard, end to end |
| Through NAT and firewalls | Direct paths, relay over HTTPS 443 as fallback | Direct paths, DERP relays over HTTPS |
| Names | Private DNS: name, name.rada.internal | MagicDNS |
| Access rules | Tags, direction and ports, enforced on each machine | ACLs and grants, users, groups, tags, ports |
| Signing in | Email code; one-time keys for machines | Google, Microsoft, GitHub, Okta and more; auth keys |
| Platforms | macOS, Linux | macOS, Windows, Linux, iOS, Android, more |
| Self-hosting | Yes: one small server program and a relay | Hosted service; Headscale is a separate community project |
| Machines without a person | First-class: fleet keys, tags, a small agent | Supported with auth keys and tags |
| Exit nodes, subnet routes | Not yet | Yes |
| File sharing, SSH helper, public sharing | Not yet | Taildrop, Tailscale SSH, Funnel |
| Signed apps, app stores | Not yet (this build is unsigned) | Yes |
Known limitations of this build
- Not signed by Apple yet, so macOS needs the Open Anyway step.
- Linux packages are for 64-bit Intel/AMD only. No ARM Linux, Windows, iPhone or Android yet.
- The overlay is IPv4 only.
- One network, run by Ganesh. You can't create your own yet.
- On networks that drop large packets, transfers can stall.
radanet prefs --mtu 1200fixes it; automatic detection is coming.
What gets installed, and how to remove it
| macOS | Linux | |
|---|---|---|
| Background service | /usr/local/bin/radanet, launch daemon io.radanet.agent | /usr/bin/radanet, systemd unit radanet |
| App | /Applications/Rada.app | radanet-desktop (optional package) |
| Machine identity and settings | /var/lib/radanet | /var/lib/radanet |
| Network changes | A utun interface for 100.96.0.0/16; DNS only for rada.internal | A tun0 interface for 100.96.0.0/16; DNS only for rada.internal |
| Remove | sudo "/Library/Application Support/Rada/uninstall.sh" --purge | sudo apt purge rada radanet |
Your normal internet traffic and DNS are not touched. Only traffic for 100.96.x.x addresses and rada.internal names goes through Rada.