Bash spricht HTTP: Eine Anfrage ganz ohne curl

Michael Dobler
Autor Dr. Web
3 Min. Lesezeit
Bash spricht HTTP: Eine Anfrage ganz ohne curl

Ein abgespeckter Docker-Container ohne curl und ohne wget, und trotzdem soll ein Health-Check eine HTTP-Anfrage absetzen. Der Entwickler Marek Šuppa hat dafür kein Werkzeug nachinstalliert, sondern die Bordmittel der Shell genutzt: Bash kann selbst eine TCP-Verbindung öffnen.

drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügen

Der Kniff ist alt, aber gerade in schlanken Container-Umgebungen praktisch. Mit dem speziellen Pfad /dev/tcp spricht Bash HTTP von Hand, ganz ohne externes Programm.

Das Wichtigste in Kürze

  • Bash öffnet über den speziellen Pfad /dev/tcp/host/port direkt einen TCP-Socket, ohne dass curl oder wget installiert sein müssen.
  • Mit einem Dateideskriptor und einem handgeschriebenen HTTP-Request lässt sich so ein einfacher GET-Aufruf absetzen.
  • Der Trick eignet sich für Health-Checks in stark reduzierten Container-Images, in denen kein Netzwerk-Tool vorhanden ist.
  • Wichtige Grenze: /dev/tcp beherrscht kein TLS und gehört nicht in unbeaufsichtigten Produktivbetrieb.

Wie spricht Bash HTTP ganz ohne curl?

Ein rotes Schweizer Taschenmesser mit halb geöffneter Klinge liegt auf einer Holzoberfläche
Bash-Umleitung /dev/tcp/host/port ermöglicht Health-Check ohne zusätzlichen Container und hält das Image schlank

Der Ausgangspunkt war ein schlankes Image, das nur einen einzigen Health-Check-Prozess ausführen sollte. Ein zusätzliches curl in einem Sidecar-Container hätte die Sache unnötig aufgebläht. Šuppa wollte den Aufruf mit dem erledigen, was ohnehin da ist.

Bash behandelt bestimmte Dateinamen in Umleitungen speziell. Der Pfad /dev/tcp/host/port ist keine echte Datei, sondern eine eingebaute Funktion: Wenn der Host auflösbar und der Port gültig ist, öffnet die Shell den passenden TCP-Socket. Genau das macht den Aufruf ohne Zusatzprogramm möglich.

Wie sieht der konkrete Aufruf aus?

Der Ablauf braucht nur drei Bausteine. Zuerst öffnet ein Dateideskriptor die Verbindung mit exec 3<>/dev/tcp/service/8642. Danach schreibt ein printf den HTTP-Request samt Host-Header und Connection: close in diesen Deskriptor. Zuletzt liest cat <&3 die Antwort des Servers aus.

Der Hostname muss dabei auflösbar und erreichbar sein, etwa ein Service-Name in einem konfigurierten Docker-Netzwerk oder ein gültiger DNS-Eintrag. Für einen schlichten GET gegen einen internen Dienst reicht das vollständig, ohne dass eine einzige Zeile Software hinzukommt.

Manchmal ist die eleganteste Lösung die, die nichts hinzufügt. Wer ein 200-Megabyte-Tool installiert, um einen Health-Check zu fahren, hat die Frage falsch gestellt. Bordmittel zuerst, das spart Angriffsfläche und Wartung.

— Markus Seyfferth, Chefredakteur Dr. Web

Wo liegt die Grenze des Tricks?

Altes, rostiges Vorhängeschloss mit Kette und orangem Kabelbinder auf weißem Grund
/dev/tcp unterstützt kein TLS und HTTPS nicht direkt; für verschlüsselte Verbindungen bleibt openssl nötig. Trotzdem zuverlässig für Debugging und Tests

Der Komfort hat klare Grenzen. /dev/tcp kann kein TLS, eine HTTPS-Verbindung lässt sich damit nicht direkt aufbauen. Für verschlüsselte Aufrufe braucht es weiterhin ein Werkzeug wie openssl. Auch bei einer 301-Weiterleitung versagt der schlichte Ansatz.

Für Debugging, Testen und einfache interne Checks ist die Methode trotzdem ein verlässliches Bordmittel. Für unbeaufsichtigte Pipelines im Produktivbetrieb rät selbst die Entwickler-Community zur Vorsicht und greift dann wieder zu curl. Wer seine Entwicklungsumgebung sauber aufstellen will, findet Anregungen in unseren Tipps zu Windows 11 für Webentwickler und im Editoren-Vergleich 2026.

Mehr Newshunger?

Grüner Spielzeugvogel mit Lautsprecherschnabel, HTTP-Zettel und
Windows 11 Webentwickler-Tools: HTML-Editoren im Vergleich, KI-Code-Generierung und beste Ressourcen
4,3 23 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?

Empfohlene Artikel
Unternehmen & Strategie
4 Min.  ·  21. Mai. 2026
Robotik & Bionik
3 Min.  ·  12. Mai. 2026
Social Media Marketing
11 Min.  ·  9. Juni. 2026
Michael Dobler
Autor
Ich bin der Herausgeber von Dr. Web. Um praxisfit zu bleiben, unterstütze ich darüber hinaus Kunden bei der digitalen Kundengewinnung und Kundenbindung. Erste eigene Gehversuche im Internet unternahm ich 1999 mit einem Kinomagazin. Nach 15 Jahren in Lohn und Brot, u.a. als Projektmanager für digitale Medien, machte ich mich schließlich Ende 2005 selbständig. Das war die beste berufliche Entscheidung meines Lebens.
931 Artikel veröffentlicht
Alle Artikel

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter

Mehr solcher Artikel?
Jetzt kostenlos abonnieren.

Jeden Dienstag die besten Artikel aus dem Dr. Web-Magazin direkt in Ihr Postfach – kein Spam, jederzeit abmeldbar.

Einmal pro Woche, kein täglicher Spam
Jederzeit mit einem Klick abmeldbar
DSGVO-konform via Brevo