Erreiche deine Geräte von überall.Über deinen Server.
Ob im Büro, zu Hause oder unterwegs: wave-mesh verbindet Laptops, Server, NAS und Cluster über WireGuard direkt miteinander, auch hinter NAT und ohne Portfreigabe. Den Koordinationsserver betreibst du selbst, und er sieht nie einen privaten Schlüssel.
Alle Pfade direkt. Die Geräte haben sich gegenseitig durch ihre NATs gefunden.
- Linux
- macOS
- Windows
- Kubernetes
- iOSin Arbeit
- Androidin Arbeit
Ein Binary für Linux, macOS und Windows, jeweils für amd64 und arm64.
In drei Schritten im Netz
Ein Wave ist ein Netz. Du startest den Server einmal, danach braucht jedes Gerät zwei Befehle.
Zur ausführlichen AnleitungControl-Server starten
Control-Server, Relay und Postgres per Kustomize im eigenen Kubernetes-Cluster; ein einzelner Server mit k3s genügt. Der Server vergibt Adressen, Namen und Regeln.
$ cd deployment/server/overlays/mywave$ kubectl apply -k .Client installieren
Ein einzelnes Binary von der Release-Seite.
installrichtet Dienst und Tray-Icon ein, danach braucht der Alltag keinsudomehr.$ sudo ./wave installAnmelden und verbinden
wave loginnennt deinen Server und zeigt einen Link zum Anmelden. Danach findet das Gerät alle anderen im Wave von selbst, und es kann beliebig vielen Waves beitreten.$ wave login https://control.example.com$ wave up
Was ein Wave kann
Direkt, wann immer es geht
Jedes Gerät erfährt über STUN seine öffentliche Adresse, und beide Seiten schlagen gleichzeitig ein Loch in ihr NAT. Gelingt das nicht, etwa bei symmetrischem NAT im Mobilfunk, läuft der Verkehr über ein Relay. Wird der direkte Weg frei, wechselt die Verbindung, ohne abzureißen.
Abgesichert durch Ende-zu-Ende-Tests mit echten NATs, die in jeder CI laufen.
wave0 10.77.0.2
name laptop.wave.example.com
dns *.wave.example.com
relay connected wss://relay.example.com
PEER ADDRESS PATH HANDSHAKE
nas 10.77.0.3 direct 192.168.1.20:41641 3ms 12s ago
workstation 10.77.0.4 via relay 61ms 8s ago
cluster 10.77.0.9 direct 203.0.113.7:41641 18ms 31s ago
↳ https://grafana.wave.example.com 10.77.128.1
wave 0.4.0Namen unter deiner Domain
Trägt ein Wave ein DNS-Suffix, das dir gehört, heißen deine Geräte laptop.wave.example.com statt 10.77.0.5. Ein lokaler Resolver beantwortet nur die Namen des Waves, alles andere geht unverändert an dein normales DNS.
- laptop.wave.example.com10.77.0.2verbunden
- nas.wave.example.com10.77.0.3verbunden
- workstation.wave.example.com10.77.0.4verbunden
- build-runner.wave.example.com10.77.0.7vor 3 Std.
Echte Zertifikate für jedes Gerät
Jedes Gerät bekommt ein Let's-Encrypt-Zertifikat auf seinen Namen. Der private Schlüssel entsteht auf dem Gerät und verlässt es nie. Erneuert wird unbeaufsichtigt, über Cloudflare, Hetzner, IONOS oder INWX. Ohne Zugangsdaten geht es auch, dann legst du den TXT-Record selbst an.
$ wave cert
This wave answers dns-01 by hand, so laptop.wave.example.com needs a record first:
name _acme-challenge.laptop.wave.example.com
type TXT
value 0Zq8…
Waiting... Ctrl-C is safe: `wave cert` takes the same order up again.Zugriff als Graph
Mitglieder, Gruppen, Tags und Dienste stehen als Karten nebeneinander. Eine Regel ist ein Pfeil, die Ports hängen an der Kante. Die Seite zeigt, wer danach wen erreicht, bevor du speicherst.
Dienste aus dem Cluster
Ein gewöhnlicher Ingress mit der Klasse wave macht einen internen Dienst im Wave erreichbar und sonst nirgends. Der Connector im Cluster hat keinen eingehenden Port.
Updates, signiert
Der Dienst installiert neue Versionen selbst, aber nur mit gültiger Ed25519-Signatur. Erreicht die neue Fassung keinen Server, geht er von allein zurück.
Mehrere Waves auf einem Gerät
Ein Laptop kann gleichzeitig im Wave der Firma und im eigenen sein. Überschneiden sich die Adressen, verweigert der Client den zweiten Wave, statt still eine Route zu überschreiben.
Was der Server weiß, und was nicht
wave-mesh trennt drei Ebenen strikt. Der Control-Server verteilt nur öffentliche Schlüssel, das Relay reicht nur Chiffrat weiter. Den Verkehr zwischen deinen Geräten kann keiner von beiden entschlüsseln.
| Ebene | Aufgabe | Kennt private Schlüssel |
|---|---|---|
| Control-Server | Identität, Autorisierung, Netzkarte, DNS | nein |
| Relay | Adressen spiegeln, Chiffrat weiterreichen | nein |
| Gerät | WireGuard-Tunnel, lokale Konfiguration | nur den eigenen |
Signierte Netzkarte
Der Control-Server signiert die Netzkarte mit seinem Ed25519-Schlüssel, und Geräte übernehmen nur, was dazu passt.
Authentifizierte Discovery
Auch die Pakete, mit denen sich Geräte finden, sind verschlüsselt: X25519 und XChaCha20-Poly1305.
Anmeldung, die du kontrollierst
E-Mail und Passwort mit Argon2id, oder Google-Login. Konten legt der Betreiber an, eine offene Registrierung gibt es nicht.
Was es kostet
wave-mesh steht unter der Elastic License 2.0. Selbst betreiben ist und bleibt kostenlos.
Selbst betreiben
0 €ohne Gerätelimit
Alle Funktionen, auf deiner eigenen Infrastruktur. Nutzen, ändern und im eigenen Unternehmen einsetzen ist erlaubt.
- Control-Server und Relay
- Clients für alle Plattformen
- Updates über deinen Server
Betrieb durch uns
4 €pro Nutzer und Monat
Wir betreiben Control-Server und Relays für dich, du verbindest nur noch Geräte. Sag Bescheid, wenn du dabei sein willst.
- Control-Server und Relays von uns
- Updates und Backups inklusive
- Eigene Domain für deine Geräte
Installation in deiner Cloud
4.650 €einmalig
Wir installieren wave-mesh in der Cloud deines Unternehmens. Danach übernehmen wir auf Wunsch mit einem Wartungspaket Updates und Betrieb.
- Control-Server und Relays in deiner Cloud
- Anbindung deiner Cluster und Geräte
- Optional: Wartungspaket für Updates und Betrieb
Angebote für Unternehmen. Alle Preise zzgl. gesetzlicher MwSt., es gelten unsere AGB. Nicht erlaubt ist nur, wave-mesh Dritten als gehosteten oder verwalteten Dienst anzubieten.
Roadmap
Alles unter „Verfügbar“ steckt in den stabilen Releases. „Als Nächstes“ ist in Arbeit oder geplant; was neu dazukommt, steht im Changelog.
Verfügbar
- Direkte Verbindung durch NAT
- Relay, wenn Punching scheitert
- Namen unter eigener Domain
- Let's-Encrypt-Zertifikate
- Dienste aus dem Kubernetes-Cluster
- Zugriffsregeln und Audit-Log
- Signierte Selbstaktualisierung
Als Nächstes
- Apps für iOS und AndroidKern fertig, Apps in Arbeit
- Subnetz-Router und Exit-Nodes
- Dienste aus dem Wave im offenen Netz
Häufige Fragen
Was ist anders als bei einem gehosteten Mesh-VPN?
Der Koordinationsserver gehört dir: Er läuft auf deiner Infrastruktur, nicht bei einem Anbieter. Deine Geräte tragen Namen unter deiner eigenen Domain, und jedes bekommt ein öffentlich gültiges Zertifikat.
Wie schnell ist es?
Der Datenpfad läuft heute im Userspace. Realistisch sind 100 bis 300 Mbit/s je Gerät. Ein schnellerer Pfad über Kernel-WireGuard ist geplant, aber noch nicht gebaut.
Brauche ich eine eigene Domain?
Nein. Ohne Domain heißen deine Geräte unter .internal und sind trotzdem per Namen erreichbar. Öffentlich gültige Zertifikate gibt es nur mit einer Domain, die dir gehört.
Was darf ich mit der Lizenz?
Nutzen, verändern und weitergeben, auch im eigenen Unternehmen. Nicht erlaubt ist, wave-mesh Dritten als gehosteten oder verwalteten Dienst anzubieten.
Was brauche ich auf dem Server?
Einen Kubernetes-Cluster; ein einzelner Server mit k3s genügt. Control-Server, Relay und Postgres kommen als fertige Images und werden per Kustomize eingerichtet. Nach außen braucht es HTTPS und UDP 3478 für STUN.
Bring deine Geräte zusammen.
Ein Server, ein Binary je Gerät, und alles spricht direkt miteinander.