
bitbang-cli v0.5.0
Sicheren Fernzugriff auf einen Rechner mit interaktiver Shell, Dateiübertragung und Web-Proxy über Ende-zu-Ende-verschlüsseltes Peer-to-Peer-WebRTC einrichten, über einen Browser oder die CLI, ohne Port-Weiterleitung oder Konten.
BitBang CLI
bitbang ist ein Multitool für den Fernzugriff, das als einzelne statische Binärdatei vorliegt. Von jedem Browser aus: interaktiver Shell- und Dateibrowser-Zugriff auf die entfernte Maschine. Du kannst auch Web-Apps im Netzwerk dieser Maschine erreichen. Über den Browser hinaus bietet es TCP-Portweiterleitung, Dateikopieren und Terminal-Freigabe. Es erfordert kein Konto und keine Konfiguration -- es funktioniert einfach.

Auf der Maschine, die du erreichen möchtest:
curl -sSfL bitba.ng/install | sh
bitbang serve
serve gibt eine URL aus. Öffnen Sie sie in einem beliebigen Browser und Sie erhalten ein Terminal, einen Dateibrowser und einen Proxy zum Netzwerk dieser Maschine -- oder erreichen Sie dieselbe Maschine von einem anderen Terminal aus mit bitbang connect <url>, was Portweiterleitung (-L) und Dateikopieren (bitbang cp) hinzufügt. Die Verbindung ist Ende-zu-Ende-verschlüsselt und Peer-to-Peer; der bitba.ng-Server stellt die beiden Enden einander vor und tritt dann beiseite.
bitbang ist ein einzelnes statisches Go-Binary. Es ist Teil des BitBang-Projekts; dieses Whitepaper behandelt das Design ausführlich.
Wie es sich vergleicht
| ngrok | Tailscale | bitbang | |
|---|---|---|---|
| Einrichtung vor der ersten Nutzung | Konto + Authtoken | Konto + Anmeldung auf jedem Gerät | Einen Befehl ausführen |
| Um etwas zu teilen, führen Sie aus | einen Webserver, plus ngrok | deren Client auf beiden Maschinen | bitbang serve |
| Was ein Browser am anderen Ende erhält | den Webserver, den Sie ohnehin schon betrieben haben | nichts -- er benötigt deren Client | ein Terminal, einen Dateibrowser und Web-Apps im entfernten Netzwerk |
| Datenpfad | deren Server | P2P (Relay-Fallback) | P2P (Relay-Fallback) |
| Ende-zu-Ende-verschlüsselt | Standardmäßig nicht | Ja | Ja |
Schnelle Rezepte
Einen Dienst zu Hause erreichen
- Ihr Heim-NAS von überall einbinden (SMB)
- Ihre Mediathek von überall ansehen (Jellyfin)
- Ihr eigenes LLM von überall nutzen (Ollama, Open WebUI)
- Ihre Überwachungskameras prüfen (Frigate)
- Ihre Hausautomation erreichen, ohne sie offenzulegen (Home Assistant)
- Auf Ihrem Heimdrucker drucken (IPP, CUPS)
Auf eine Maschine gelangen
- Eine Shell auf einer Maschine hinter NAT erhalten
- Eine Shell von Ihrem Telefon erhalten
- Remote-Desktop auf eine Windows-Maschine (RDP)
- Einen Linux- oder Mac-Desktop erreichen (VNC)
- SSH zu einer Maschine ohne offenen Port (OpenSSH)
- Einen Headless-Raspberry Pi einrichten
Mit jemand anderem teilen
Teilen bedeutet einfach, jemandem eine eindeutige URL oder einen QR-Code zu geben, der ihm Zugriff gewährt. Berechtigungen können individuell angepasst und so eingestellt werden, dass sie in Minuten, Stunden usw. ablaufen.
- Dateien teilen, ohne sie irgendwo hochzuladen
- Jemandem dein Projekt zeigen
- Jemandem den Fehler zeigen, an dem du festhängst
- Jemandem Zugriff geben, der abläuft
- Deine Agent-Sitzung vom Telefon aus prüfen (Claude Code, tmux)
- Den Router von jemand anderem reparieren
Entwicklung und Geräte
- Eine Datenbank von deinem Entwicklungsrechner aus erreichen (Postgres, MySQL)
- Geräte synchronisieren, die sich nicht gegenseitig finden (Syncthing)
- Einen Roboter aus dem Browser beobachten (ROS, Foxglove)
Techniken
- Was ein Forwarding-Listener offenlegt
- Anderen Maschinen in deinem LAN die Nutzung eines Forwards erlauben
- Bekanntlich funktioniert nicht
Verwendung von bitbang
Jede Verbindung hat zwei Enden: einen Listener (bitbang serve, der auf der zu erreichenden Maschine läuft) und einen Connector (ein Browser oder die bitbang-CLI auf der Maschine, die die Verbindung herstellt). Eine Listener-URL bedient beide Arten von Connector.
Der Listener: bitbang serve
bitbang serve # everything: shell + proxy + files + forward
bitbang serve shell # just a terminal
bitbang serve files ~/share # just a directory (-files-upload to allow uploads)
bitbang serve proxy localhost:8080 # just one web app, straight at the URL
bitbang serve proxy a.lan:80,b.lan:80 # ...or several, chosen in the browser
bitbang serve forward 127.0.0.1:22 # just TCP, for `connect -L`
bitbang serve shell files ~/share proxy nas.lan:8096 # any combination