b.lan – Momentaner Remote-Desktop über einen Browser für Heimserver, die sich weigern, eine Desktop-Umgebung zu installieren
In den letzten Wochen bin ich ziemlich oft zwischen Terminal und Browser hin- und hergewechselt, um mich um den Homeserver zu kümmern. Manchmal müssen Sie die Admin-Seite des Routers öffnen, manchmal müssen Sie die Website-Anzeige auf der Clientseite testen oder einfach eine Datei mit Chrome herunterladen, nachdem Sie sich bei einem bestimmten Konto angemeldet haben. Jedes Mal, wenn Sie eine SSH-Verbindung mit Portweiterleitung herstellen oder einen Link in einen lokalen Browser kopieren müssen, fühlt es sich für einen 5-Sekunden-Auftrag wirklich kompliziert an.
Es entstand der Gedanke, eine Desktop-Umgebung (DE) zu installieren. Aber DEs mögen es, ganz zu schweigen davon, dass sie die Abhängigkeiten von Dutzenden von Paketen, Display-Managern und Compositors einbeziehen – die tatsächlich rund um die Uhr laufen, auch wenn sie nicht verwendet werden.
Deshalb habe ich b.lan erstellt: einen On-Demand-Remote-Desktop, der nur bei Verwendung läuft, sich im Leerlauf automatisch ausschaltet und im Leerlauf nur über insgesamt 50 MB RAM verfügt.
Warum nicht einfach DE installieren?
Diese Frage stellt sich jedes Mal, wenn ich über dieses Setup spreche. Die Antwort ist einfach: Ressource. Dieser HP 14s Server verfügt nur über 8 GB RAM und einen mittelmäßigen Prozessor. Nginx, PHP-FPM, MySQL und mehrere andere Dienste verbrauchen bereits 1-2 GB. Das Hinzufügen von DE bedeutet, dass 300 MB–2 GB hinzugefügt werden, was auch dann weitergeht, wenn niemand angemeldet ist.
Was ich brauche, ist kein 24/7-Desktop. Was ich brauche, ist: die Möglichkeit, den Bildschirm bei Bedarf für einen Moment auszuleihen und ihn dann zurückzugeben, wenn er fertig ist. Es ist, als würde man einen Computer mieten, nicht kaufen.
| Komponenten | RAM | Fortsetzung? |
|---|---|---|
| Vollständiges DE (XFCE) | ~300 MB | Ja |
| Vollständiges DE (GNOME/KDE) | ~1–2 GB | Ja |
| b.lan (im Leerlauf) | ~50 MB | Nein – schaltet sich im Leerlauf aus |
| Chrome (1 Tab) | ~200 MB | Nur bei Verwendung |
Hier kommt b.lan
b.lan (b.lan – ja, nur 4 Buchstaben) ist ein browserbasierter Remote-Desktop, auf den von jedem Gerät im lokalen Netzwerk aus zugegriffen werden kann. Öffnen Sie einfach https://b.lan in einem Browser, klicken Sie auf „Sitzung starten“ und in wenigen Sekunden haben Sie einen virtuellen Desktop komplett mit Chrome, Dateimanager und Terminal.
Erste Ansicht – Remote-Desktop ist mit einem Klick startbereit
Wenn die Sitzung ausgeführt wird, ändert sich die Anzeige in eine einfache Symbolleiste mit einem Iframe, der über noVNC direkt eine Verbindung zum virtuellen Desktop herstellt. Von hier aus können Sie:
- Surfen Sie mit Chrome, wenn Sie mit Ihren Konten angemeldet sind
- Durchsuchen Sie die Serverdateien mit dem Thunar File Manager (Strg+Alt+F)
- Greifen Sie direkt mit xfce4-terminal (Strg+Alt+T) auf das Terminal zu.
- Öffnen Sie ein neues Chrome (Strg+Alt+C)
- Beenden Sie die Sitzung jederzeit mit der Schaltfläche „Beenden“
Sitzung läuft – minimale Symbolleiste oben, virtueller Desktop im Iframe
Was Sie auf dem virtuellen Desktop tun können
1. Chrome-Browser
Chrome Stable 149 läuft auf der virtuellen Anzeige. Das Profil ist von meinem lokalen Chrome getrennt – Sie können sich also mit bestimmten Konten speziell für Serverzwecke anmelden (Websites testen, auf Router zugreifen, Dateien herunterladen).
Chrome läuft auf dem Xvfb-Display :99 – sieht aus wie ein normaler Desktop, ist aber nur virtuell
2. Datei-Explorer – Thunar
Dies ist die Funktion, die ich am häufigsten verwende. Mit Thunar kann ich mithilfe der GUI durch Serverdateien navigieren – Dateien kopieren und einfügen, Verzeichnisse öffnen und Miniaturansichten von Bildern anzeigen. Viel schneller als wiederholtes ls im Terminal beim Durchsuchen eines unbekannten Ordners.
Thunar File Manager – das Durchsuchen von Serverdateien ist oft besser als ls
3. Terminal – xfce4-terminal
Ja, auf dem virtuellen Desktop, der Chrome und einen Dateimanager enthält, gibt es auch ein Terminal. Multitasking ist jetzt noch besser: Terminal in einem Fenster, Browser in einem anderen Fenster, auf demselben Bildschirm.
Terminal neben dem Browser – das Arbeiten wird flexibler
Technische Architektur
Hinter seinem einfachen Erscheinungsbild verwendet b.lan einen leichten, aber leistungsstarken Stack:
Der Datenfluss sieht folgendermaßen aus:
Browser (client)
↓ HTTPS
Nginx (b.lan:443)
↓ proxy
noVNC / websockify (:6080)
↓ WebSocket
x11vnc (:5900)
↓
Xvfb (:99)
↓
openbox + tint2 + Chrome + Thunar + Terminal
Öffnen Sie die b.lan-Seite → Nginx server index.html → JavaScript-Status prüfen → Wenn es tot ist, zeigen Sie die Startschaltfläche an → Klicken Sie auf Start, lösen Sie systemctl start browser-session.service aus →
Lebenszyklusmanagement
Die Funktion, die mir am besten gefällt: Automatischer Stopp im Leerlauf. Jedes Mal, wenn ein VNC-Client eine Verbindung herstellt, wird die Zeitstempeldatei aktualisiert. Wenn der Timer 30 Minuten lang nicht zurückgesetzt wird (weil die Verbindung zum Client getrennt ist), schaltet systemd den Dienst sofort aus. Sauber, keine Hängevorgänge.
| Endpunkt | Funktion |
|---|---|
/ | Startseite – Offline-Seite oder Iframe noVNC |
/start | Sitzung starten (Systemctl-Start auslösen) |
/stop | Sitzung beenden |
/status | Status prüfen (läuft/gestoppt + Sekunden im Leerlauf) |
/heartbeat | Aktivitätszeitstempel aktualisieren (damit es nicht stoppt) |
Open Source auf GitHub
Ich habe alle Skripte auf GitHub hochgeladen, damit jeder sie verwenden oder ändern kann: github.com/adammuizweb/browser.
Es gibt install.sh, das einfach sudo ausführt – es installiert alle Abhängigkeiten, richtet den systemd-Dienst ein, stellt die Nginx-Konfiguration bereit und bereitet die Web-Benutzeroberfläche vor. Geeignet für Debian/Ubuntu und Derivate.
# Cara instalasi (sebagai root)
sudo bash install.sh
# Atau kustom domain
DOMAIN=browser.lan sudo bash install.sh
Nach der Installation legen Sie einfach DNS fest (dnsmasq oder /etc/hosts) und greifen über den Browser darauf zu. HTTPS mit selbstsigniertem Zertifikat über mkcert wird empfohlen, damit Sie keine Warnung zu gemischten Inhalten erhalten, wenn noVNC verbunden ist.
Schlussfolgerung
b.lan ist kein Ersatz für SSH oder ein Terminal – es ist eine Ergänzung für Situationen, in denen CLI fehlt. Manchmal braucht man wirklich eine GUI, aber das bedeutet nicht, dass man ein schwergewichtiges DE installieren muss, das rund um die Uhr läuft.
Der Grundsatz: Dienste, die nicht genutzt werden, sollen keine Ressourcen verbrauchen. b.lan einschalten, wenn nötig, ausschalten, wenn es fertig ist. Einfach, leicht, effektiv.
Wenn Sie zu Hause einen Heimserver haben und oft das Gefühl haben, „wenn es nur für einen Moment einen Desktop gäbe“, versuchen Sie es mit der Bereitstellung von b.lan. Oder wenn Sie eine Idee finden, warte ich immer auf die Pull-Anfrage im Repo.
