Viaalink Relay
Zo werkt Viaalink Relay
Eén Relay, een adres voor elk apparaat dat je hebt.
Alles wat via een Relay gaat, is een van drie soorten verbinding. Hier staan ze in gewone woorden, elk met een link naar de technische details.
Overzicht
Drie manieren om te verbinden
Een Relay is een server die je zelf draait. Je apparaten verbinden ernaar toe; mensen bereiken via de Relay wat je publiceert.
- A
Apparaat ↔ Relay
Een client op je apparaat maakt verbinding met de Relay en publiceert iets op dat apparaat als adres.
- Eén commando: via publish 3000
- Of gewoon OpenSSH: ssh -R
- Geen open poort op het apparaat
- B
SSH-client ↔ Relay ↔ apparaat
Een machine publiceert zijn SSH als privé-alias. Je logt in vanaf je laptop met gewoon OpenSSH en maakt een jump via de Relay.
- Niets openbaar op internet
- Gewoon OpenSSH: ssh -J
- De Relay kan de sessie niet lezen
- C
Bezoeker ↔ adres
Iedereen met de link opent het adres in een browser. Een bezoeker installeert niets en heeft geen account nodig.
- Een browser is genoeg
- HTTPS op je eigen domein
- Optioneel een wachtwoord per link
Pad A
Een apparaat publiceert een adres
Een programma op je apparaat — de client — belt de Relay, niet andersom.
Het apparaat heeft geen open poort en geen regel in de router nodig, alleen een weg naar de Relay.
De client is de Viaalink CLI (via publish 3000) of gewoon OpenSSH (ssh -R), dat bij Linux, macOS en recente Windows zit.
Zolang die ene verbinding openstaat werkt het adres; gaat ze dicht, dan is het adres weg.
- Je apparaat app op localhost:3000
- Client via publish 3000verbindt naar buiten · SSH 2222
- Relay relay.example.com
Je adres https://k3x.relay.example.com
Pad B
Met SSH inloggen op een machine, via de Relay
Je wilt thuis of op kantoor op een machine inloggen zonder zijn SSH op internet te zetten.
De machine publiceert zijn SSH onder een privé-alias, een naam die alleen binnen de Relay bestaat.
Vanaf je laptop maak je met gewoon OpenSSH een jump via de Relay; op de machine zelf log je daarna gewoon in.
De SSH-sessie loopt versleuteld van je laptop tot de machine: de Relay kopieert de bytes en kan ze niet lezen.
- Je laptop SSH-client (OpenSSH)ssh -J
- Relay jump, poort 2222alleen binnen de Relay
- Privé-alias mybox:22ssh -R
- De machine zijn eigen SSH-server
Eén commando ssh -J relay.example.com:2222 alice@mybox
Pad C
Een bezoeker opent het adres
Je stuurt iemand het adres; die opent het in een browser. Geen app, geen account, geen sleutel.
De Relay zoekt het apparaat bij het adres en stuurt het verzoek over de verbinding van dat apparaat.
Bezoekers tellen niet mee als verbonden apparaten.
- Bezoeker een browser, niets geïnstalleerdHTTPS 443
- Relay HTTPS eindigt hierbinnen de SSH van het apparaat
- Je apparaat de app die je publiceerde
HTTPS eindigt bij de Relay, met zijn Let's Encrypt-certificaat. Wil je onbekenden buiten houden, zet dan een wachtwoord op één link, of laat de Relay alleen bepaalde netwerken of landen toe.
De onderdelen
De onderdelen
Vier onderdelen, van de app op je apparaat tot de persoon die hem opent.
- Je app of dienst bijv. localhost:3000, of SSHop hetzelfde apparaat
- Client via, of OpenSSHéén uitgaande SSH-verbinding
- Relay op je server, NAS of pc, met automatische HTTPSHTTPS op je eigen domein
- Bezoeker een browser, waar dan ook
Beveiliging
Wat de Relay wel en niet kan zien
De Relay zit in het midden. Het is goed om precies te weten wat er in leesbare vorm langskomt.
- Bezoeker browserHTTPS
- Relay je eigen serverbinnen SSH
- Je apparaat client
De Relay kan zien
- Webverzoeken naar je adressen: HTTPS eindigt bij de Relay, omdat die de naam leest om het juiste apparaat te vinden.
- Welke apparaten verbonden zijn en welke adressen elk apparaat heeft.
- Dat iemand verbinding maakte met een privé-alias.
De Relay kan niet zien
- De inhoud van een SSH-sessie via een privé-alias: die is versleuteld tussen je laptop en de machine.
- Verkeer dat je publiceert met TLS-passthrough: je eigen dienst heeft het certificaat.
Wie bewijst wat
- Apparaten en SSH-clients loggen bij de Relay in met een goedgekeurde SSH-sleutel.
- De Relay bewijst zich aan apparaten met zijn SSH-hostsleutel, die OpenSSH controleert, en aan bezoekers met zijn Let's Encrypt-certificaat.
- Bezoekers bewijzen standaard niets; je kunt een wachtwoord per link en IP- of landregels toevoegen.
Stap voor stap
Een apparaat verbindt, stap voor stap
Wat er gebeurt tussen het moment dat een client start en het moment dat het adres werkt.
-
Naar buiten verbinden
Het apparaat opent één verbinding met de SSH-poort van de Relay, 2222. Het heeft vijf seconden om in te loggen.
-
Handdruk
De Relay bewijst wie hij is met zijn SSH-hostsleutel. Vanaf hier is alles versleuteld.
-
Inloggen met een sleutel
Het apparaat bewijst wie het is met een SSH-sleutel die de beheerder heeft goedgekeurd. Met een licentie controleert de Relay ook of het apparaat binnen je pakket past.
-
Een adres vragen
Het apparaat vraagt adressen aan met gewone SSH-forwardverzoeken, dezelfde die ssh -R stuurt.
ssh -p 2222 -R app:80:localhost:3000 relay.example.com -
Het adres krijgen
De Relay antwoordt met het adres dat hij toewees.
HTTPS: https://k3x.relay.example.com -
Het verkeer dragen
Elke bezoeker wordt een nieuw kanaal binnen dezelfde SSH-verbinding, en de client geeft het door aan de lokale app. Gaat de verbinding dicht, dan zijn de adressen weg.
Waar het draait
Waar het draait
Elke machine die aan blijft, kan de Relay zijn. Elk apparaat kan erdoor publiceren: het heeft alleen een client nodig, via of OpenSSH.
-
Linux
Servers, pc's en Raspberry Pi, op Intel/AMD en ARM-borden.
Start bij het opstarten als systeemdienst.
-
Docker
Het image viaalink/relay voor amd64 en arm64.
Een container die met Docker herstart.
-
Synology en QNAP
Hetzelfde Docker-image, in de container-app van de NAS.
Draait als container.
-
ASUSTOR
De app Viaalink Relay, vanuit de NAS.
Start met de NAS.
-
Windows
Intel/AMD en ARM 64-bit, uit een zip-bestand.
Draait zolang je bent ingelogd.
-
macOS
Intel en Apple silicon.
Draait zolang je bent ingelogd.
Vragen
Korte antwoorden
Moeten bezoekers iets installeren?
- Nee. Een bezoeker opent het adres in een browser. Geen app, geen account en geen sleutel — tenzij je een wachtwoord op die link zet.
Kan de Relay mijn SSH-sessie lezen?
- Nee. Als je via de Relay een jump maakt naar een privé-alias, is de SSH-sessie versleuteld tussen je laptop en de machine. De Relay ziet alleen dat er een verbinding was. Webverkeer is anders: HTTPS eindigt bij de Relay.
Heeft elk apparaat een openbaar IP-adres nodig?
- Nee. Alleen de Relay moet vanaf internet bereikbaar zijn. Apparaten verbinden er zelf naartoe en hebben geen open poort en geen regel in de router nodig.
Kan elk apparaat de Relay zijn?
- Elke machine die aan blijft: een Linux-server of -pc, een Raspberry Pi, een NAS, een Docker-host, of een Windows- of macOS-computer. Hij heeft een domeinnaam nodig die jij beheert, en poorten die vanaf internet bereikbaar zijn.
Draai je eigen Relay
Begin gratis, of bekijk wat elk pakket toevoegt.