Mit der Relayium CLI eine Datei über Netzwerke hinweg an jemanden senden
Zuletzt aktualisiert: 2026-08-07
Manchmal ist die andere Maschine nicht deine eigene und du kannst dich nicht per SSH einloggen — eine Datei für eine Kollegin in einem anderen Büro, ein Build für einen Kunden, ein Archiv für einen Freund am anderen Ende des Landes. relayium send und receive bewegen sie über Netzwerke hinweg direkt zwischen euch beiden, nur mit einem kurzen Pairing-Code, den deine CLI beim Senden erzeugt.
Die Verbindung ist Peer-to-Peer und Ende-zu-Ende verschlüsselt. Nur ein winziger Rendezvous-Handshake läuft über Relayium, um die beiden Enden einander vorzustellen; die Dateibytes nie.
Bevor du loslegst
Alles unten ist die relayium-CLI, installiere sie also zuerst, falls noch nicht geschehen. Unter macOS oder Linux legt ein Befehl ein vorgebautes Binary in deinen PATH:
curl -fsSL https://relayium.com/install.sh | sh
- Willst du die Datei lieber selbst wählen, oder unter Windows? Hol dir ein Binary von der Releases-Seite — relayium.com/cli listet alle Installationswege (mit Go auch go build -o relayium ./cmd/relayium).
- relayium --version bestätigt die Installation. Ohne das geben die Befehle unten nur „command not found“ aus.
Erst senden, dann den ausgegebenen Code weitergeben
Was du brauchst
- Die CLI auf beiden Rechnern. relayium version gibt auf jedem eine Versionsnummer aus; antwortet die Shell mit „command not found“, ist sie dort noch nicht installiert.
- Einen angemeldeten Absender. relayium whoami gibt die Konto-E-Mail aus; das Erzeugen eines Pairing-Codes setzt relayium login voraus. Der empfangende Rechner meldet sich nie an.
- Euch beide gleichzeitig am Terminal. Der Code lebt fünf Minuten, stimmt den Moment also ab, bevor du einen erzeugst.
- Einen Weg, sechs Ziffern außerhalb des Kanals zu übermitteln — ein Anruf, ein Chatfenster, oder der Raum, in dem ihr beide sitzt.
Melde dich einmalig mit relayium login an, danach sendest du einfach. Die CLI erzeugt einen Pairing-Code, gibt ihn zusammen mit dem Befehl aus, den die andere Seite ausführt, und wartet. Gib diesen Code außerhalb des Kanals weiter — sag ihn am Telefon, schreib ihn in einen Chat:
Melde dich auf dem sendenden Rechner einmal an. Überspring das, wenn relayium whoami schon deine Konto-E-Mail ausgibt.
relayium loginStarte das Senden aus dem Verzeichnis, in dem die Datei liegt. Die CLI erzeugt den Code, gibt den Befehl für die Gegenseite aus und wartet dann.
relayium send ./release.zipGib die ausgegebenen sechs Ziffern außerhalb des Kanals weiter. Fünf Minuten nach dem Erzeugen funktionieren sie nicht mehr.
Führ auf dem empfangenden Rechner, im Verzeichnis, in dem die Dateien landen sollen, den Befehl aus, den der Absender angezeigt bekam. Ein Verzeichnis dahinter schickt sie woandershin.
relayium receive 483920relayium receive 483920 ./downloadsLass beide Terminals laufen, bis die empfangende Shell zu ihrem Prompt zurückkehrt. Das ist eine einzige Live-Sitzung: Schließt du eine Seite, endet die Übertragung.
So sieht ein erfolgreicher Lauf aus
Der Absender gibt erst den Übergabeblock aus und wartet, dann einen Verifizierungscode und den Pfad, den er bekommen hat. Beide Terminals zeigen denselben Verifizierungscode, und beide enden mit 0.
# auf dem ABSENDER
Code: 483920 (valid 5 minutes)
On the other machine: relayium receive 483920
not installed there? curl -fsSL https://relayium.com/install.sh | sh
waiting for the receiver…
verification code (SAS): 271044 — not the pairing code; compare it on both ends to rule out a substituted endpoint
path: direct- Der Code besteht aus 6 Dezimalziffern — jede von 0-9, führende Nullen eingeschlossen — und läuft 5 Minuten nach dem Erzeugen ab.
- Der Code ist nur ein gemeinsames Geheimnis zum Treffen; er wird an niemanden außer der Rendezvous-Stelle gesendet und stellt nur die beiden Enden einander vor.
- Beide Enden müssen die CLI sein — ein Browser kann einem CLI-Pairing-Code nicht beitreten. Du sendest an jemanden, der nur einen Browser hat? Nimm stattdessen relayium up, das gibt dir einen Download-Link.
Mit dem SAS-Code verifizieren
Sobald sich die beiden Enden verbinden, geben beide Terminals denselben 6-stelligen SAS (Short Authentication String) aus, der aus den angehefteten TLS-Zertifikatsfingerabdrücken abgeleitet ist. Vergleicht ihn außerhalb des Kanals — lest ihn beim Telefonat laut vor —, um zu bestätigen, dass die Fingerabdrücke nicht ausgetauscht wurden und der Rendezvous-Dienst keinen Endpunkt imitiert hat. Der SAS authentifiziert die Endpunkte; er beweist nicht jeden Netzwerk-Hop.
Für den stärksten Schutz fügt --verify hinzu: Die Übertragung wartet dann, bis ihr bestätigt, dass die Codes übereinstimmen, bevor auch nur ein einziges Byte bewegt wird.
relayium send --verify ./release.zip
Nur direkt — kostenlos, sonst schlägt es fehl
Die Übertragung versucht, eine direkte Verbindung zwischen den beiden Enden herzustellen. Gelingt das — der übliche Fall, wenn wenigstens eine Seite eine erreichbare Adresse hat —, fließt die Datei verschlüsselt direkt hindurch, mit voller Geschwindigkeit und ohne Kosten.
Relayium CLI send/receive und text sind direct-only P2P: Datei- oder Nachrichtenbytes werden weder über TURN noch über einen anderen Relayium-Server weitergeleitet. Können die beiden Endpunkte keine direkte Verbindung herstellen, schlägt die Sitzung fehl, statt auf ein Relay auszuweichen.
Falls das passiert, ist die verlässliche Antwort daemon-direct zwischen zwei erreichbaren Servern, push über SSH oder ein gespeicherter Link aus relayium up.
- Direkte Verbindung gelingt → kostenlos, volle Geschwindigkeit, Ende-zu-Ende verschlüsselt.
- Beide Enden können geografisch überall sein — der Absender führt einfach send aus, der Empfänger receive mit dem Code, den es ausgegeben hat.
Wenn es nicht klappt
Vier Fehler machen fast jeden misslungenen Versuch aus. Zu jedem gibt es eine Zeile zum Lesen oder einen Befehl zum Ausführen, der ihn entscheidet — du musst nie raten, welche Seite schuld ist.
Symptom, Prüfung, Lösung
- Der Absender startet gar nicht: „minting a pairing code needs an account“.
relayium whoami # not logged in (run `relayium login`)Auf diesem Rechner liegen keine Zugangsdaten. Führ relayium login aus und bestätige im Browser; danach gibt whoami die Konto-E-Mail aus und das Senden läuft durch. Es wurde nichts erzeugt, also ist auch kein Code verbraucht.
- Der Empfänger tippt den Code ein und das Rendezvous lehnt ihn ab.
# auf dem ABSENDER — der Übergabeblock nennt die genaue Lebensdauer relayium send ./release.zip Code: 483920 (valid 5 minutes)Der Code ist abgelaufen. Drück auf dem Absender Ctrl-C, führ relayium send ./release.zip erneut aus und gib die frischen sechs Ziffern innerhalb der fünf Minuten weiter, die der neue Übergabeblock nennt.
- Die beiden Terminals zeigen unterschiedliche Verifizierungscodes.
relayium send --verify ./release.zipHalt an und schick die Datei nicht. Unterschiedliche Codes heißen, dass die angehefteten Zertifikatsfingerabdrücke der beiden Enden nicht übereinstimmen — die Gegenseite ist also nicht der Rechner, für den du sie hältst. Führ es mit --verify erneut aus, das die Übertragung an genau diesem Vergleich anhält, und klär mit der anderen Person, an welchem Rechner sie sitzt.
- „no direct connection to the peer (both ends behind strict NAT?)“.
relayium send ./release.zip # no direct connection to the peer (both ends behind strict NAT?): …Keine der beiden Seiten hat die andere erreicht, und die CLI hat von Grund auf keinen Relay-Weg für Dateibytes. Bring ein Ende in ein Netz mit erreichbarer Adresse — einen Server oder einen Handy-Hotspot — oder lade die Datei mit relayium up hoch und gib stattdessen den Download-Link weiter.
Häufige Fragen
Woher kommt der Pairing-Code?
Relayium erzeugt ihn. Führe relayium send ./release.zip aus (nach relayium login), und die CLI gibt einen Code aus 6 Ziffern aus, der fünf Minuten gilt, dazu den genauen Befehl für die andere Seite. Selbst wählen kannst du ihn nicht — der Server akzeptiert nur Codes, die er selbst ausgegeben hat.
Wird die Datei irgendwohin hochgeladen?
Nein. Die Datei fließt direkt zwischen euch beiden, Ende-zu-Ende verschlüsselt. Nur ein kleiner Rendezvous-Handshake läuft über Relayium, um die Enden einander vorzustellen — die Datei nie.
Was, wenn wir keine Verbindung herstellen können?
Stehen beide Enden hinter strengem NAT ohne erreichbare Adresse, kann die direkte Verbindung nicht hergestellt werden und die Übertragung schlägt fehl — die CLI hat absichtlich kein Relay-Fallback. Nutzt daemon-direct zwischen zwei erreichbaren Servern oder push über SSH, wenn kein direkter Pfad verfügbar ist.
Woher weiß ich, dass wirklich die richtige Person am anderen Ende ist?
Beide Terminals geben einen identischen 6-stelligen SAS-Code aus den angehefteten TLS-Zertifikatsfingerabdrücken aus. Vergleicht ihn außerhalb des Kanals; eine Übereinstimmung bestätigt, dass die Fingerabdrücke nicht ausgetauscht wurden und der Rendezvous-Dienst keinen Endpunkt imitiert hat. Er authentifiziert die Endpunkte, nicht jeden Netzwerk-Hop. Fügt --verify hinzu, um diese Bestätigung zu verlangen, bevor Bytes bewegt werden.
Schicke deine nächste Datei direkt an jemanden in einem anderen Netzwerk — Ende-zu-Ende verschlüsselt und kostenlos.
CLI holen