Es muss nicht immer ein ausgewachsener VPN sein. Oft reicht schon eine kleine, pragmatische Lösung, um einen Dienst im Netz verfügbar zu machen. Genau da kommt autossh ins Spiel – quasi die "poor man’s VPN"-Variante.
Während klassische VPNs wie WireGuard oder OpenVPN einiges an Setup benötigen, reicht hier ein simpler Tunnel über SSH. In Kombination mit einem Service wie localhost.run wird es unschlagbar praktisch.
Mit dem simplen Kommando:
ssh -R 80:localhost:1234 localhost.run
wird der lokale Dienst, der auf localhost:1234 läuft, über eine öffentliche URL von localhost.run zugänglich gemacht.
Doch das Ganze wäre nicht dauerhaft stabil, wenn nicht autossh im Hintergrund dafür sorgen würde, dass der Tunnel immer wieder aufgebaut wird. Das Tool überwacht die Verbindung und startet sie bei Abbruch automatisch neu – perfekt für einen dauerhaften Quick-and-Dirty-VPN-Ersatz.
Damit der Tunnel nicht nur von Hand gestartet wird, sondern sich sauber in den Systembetrieb integriert, reicht eine kleine systemd-Unit. Ein Beispiel:
[Unit]
Description=Keeps a tunnel to 'localhost.run' open
After=network.target
[Service]
User=AUTOSSHUSER
ExecStart=/usr/bin/autossh -M 1235 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -p 22 localhost.run -R 80:localhost:1234 -i /home/kino/.ssh/id_ed25519
[Install]
WantedBy=multi-user.target
Damit startet der Tunnel automatisch beim Booten, hält sich selbst am Leben und macht den Dienst konstant erreichbar.
Es ist kein Ersatz für ein ausgewachsenes VPN, aber als schnelle Brücke ins Netz eine absolut geniale Lösung.