
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 ist ein einzelnes statisches Binär-Multitool für den Fernzugriff. Von jedem Browser aus: eine interaktive Shell und ein Dateibrowser-Zugriff auf den entfernten Rechner. Du kannst auch Web-Apps im Netzwerk dieser Maschine erreichen. Über den Browser hinaus bietet es TCP-Portweiterleitung, Dateikopie 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. Öffne sie in einem beliebigen Browser und du erhältst ein Terminal, einen Dateibrowser und einen Proxy zum Netzwerk dieser Maschine – oder erreiche dieselbe Maschine von einem anderen Terminal aus mit `bitbang connect <url>`, was Portweiterleitung (`-L`) und Dateikopie (`bitbang cp`) hinzufügt. Die Verbindung ist Ende-zu-Ende-verschlüsselt und Peer-to-Peer; der `bitba.ng`-Server stellt die beiden Enden vor, tritt dann aber beiseite.
`bitbang` ist eine einzelne statische Go-Binary. Es ist Teil des [BitBang-Projekts](https://github.com/richlegrand/bitbang); dieses [Whitepaper](https://github.com/richlegrand/bitbang/blob/main/whitepaper.md) behandelt das Design ausführlich.
## Vergleich
| | ngrok | Tailscale | `bitbang` |
| ------------------------------ | ---------------------- | ------------------------------ | ------------------- |
| Einrichtung vor der ersten Nutzung | Konto + Authtoken | Konto + Login auf jedem Gerät | **Einen Befehl ausführen** |
| Zum Teilen führst du aus | einen Webserver, plus ngrok | ihren Client auf beiden Maschinen | **`bitbang serve`** |
| Was ein Browser am anderen Ende erhält | den Webserver, den du bereits ausgeführt hast | nichts – er benötigt ihren Client | **ein Terminal, einen Dateibrowser und Web-Apps im entfernten Netzwerk** |
| Datenpfad | ihre Server | P2P (Relay-Fallback) | **P2P (Relay-Fallback)** |
| Ende-zu-Ende-verschlüsselt | Standardmäßig nicht | Ja | **Ja** |
## Schnellrezepte
**Erreiche einen Dienst zu Hause**
- [Mounte dein Heim-NAS von überall (SMB)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#mount-your-home-nas-from-anywhere-smb)
- [Schaue deine Mediathek von überall (Jellyfin)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#watch-your-media-library-from-anywhere-jellyfin)
- [Nutze dein eigenes LLM von überall (Ollama, Open WebUI)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#use-your-own-llm-from-anywhere-ollama-open-webui)
- [Prüfe deine Sicherheitskameras (Frigate)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#check-your-security-cameras-frigate)
- [Erreiche deine Hausautomation, ohne sie freizugeben (Home Assistant)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#reach-your-home-automation-without-exposing-it-home-assistant)
- [Drucke auf deinen Heimdrucker (IPP, CUPS)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#print-to-your-home-printer-ipp-cups)
**Auf eine Maschine zugreifen**
- [Erhalte eine Shell auf einer Maschine hinter NAT](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#get-a-shell-on-a-machine-behind-nat)
- [Erhalte eine Shell von deinem Telefon](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#get-a-shell-from-your-phone)
- [Remote-Desktop auf eine Windows-Maschine (RDP)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#remote-desktop-into-a-windows-machine-rdp)
- [Erreiche einen Linux- oder Mac-Desktop (VNC)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#reach-a-linux-or-mac-desktop-vnc)
- [SSH zu einer Maschine ohne offenen Port (OpenSSH)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#ssh-to-a-machine-with-no-open-port-openssh)
- [Richte einen headless Raspberry Pi ein](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#set-up-a-headless-raspberry-pi)
**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 angepasst und so eingestellt werden, dass sie in Minuten, Stunden usw. ablaufen.
- [Teile Dateien, ohne sie irgendwo hochzuladen](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#share-files-without-uploading-them-anywhere)
- [Zeige jemandem dein Projekt](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#show-someone-your-project)
- [Gewähre jemandem Zugriff, der abläuft](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#give-someone-access-that-expires)
- [Prüfe deine Agent-Sitzung von deinem Telefon aus (Claude Code, tmux)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#check-your-agent-session-from-your-phone-claude-code-tmux)
- [Repariere den Router von jemand anderem](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#fix-someone-elses-router)
**Entwicklung und Geräte**
- [Erreiche eine Datenbank von deiner Entwicklungsmaschine (Postgres, MySQL)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#reach-a-database-from-your-dev-machine-postgres-mysql)
- [Synchronisiere Geräte, die sich nicht finden können (Syncthing)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#sync-devices-that-cannot-find-each-other-syncthing)
- [Beobachte einen Roboter aus einem Browser (ROS, Foxglove)](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#watch-a-robot-from-a-browser-ros-foxglove)
**Techniken**
- [Was ein Weiterleitungs-Listener freigibt](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#what-a-forwarding-listener-exposes)
- [Lass andere Maschinen in deinem LAN eine Weiterleitung nutzen](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#let-other-machines-on-your-lan-use-a-forward)
- [Bekanntlich nicht funktionierend](https://github.com/richlegrand/bitbang/blob/main/cookbook.md#known-not-to-work)
## `bitbang` verwenden
Jede Verbindung hat zwei Enden: einen **Listener** (`bitbang serve`, läuft auf der Maschine, die erreicht wird) und einen **Connector** (einen Browser oder die `bitbang`-CLI auf der Maschine, die erreicht). Eine Listener-URL bedient beide Arten von Connectoren.
### 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
Jeder gibt einen QR-Code, eine URL und einen Pairing-Code aus. Der Modus bestimmt, was der Listener überhaupt tun kann: serve shell hat kein Forwarding zu gewähren, und ein reiner Forward-Listener startet nie eine Shell, also gibt es nichts zu eskalieren.