>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
CSS

So exponieren Sie einen lokalen Port ohne Aufwand für das Internet

Eine vertraute Situation: Sie starten ein Backend auf Ihrem lokalen Rechner, konfigurieren die Integration mit einem externen Dienst wie Stripe oder Telegram, und dann müssen Sie einen Webhook testen. Es gibt keinen externen Zugriff auf Ihren localhost:8000, eine statische IP zu bestellen erscheint zu aufwendig, und ein Staging-Environment nur für ein paar Anfragen bereitzustellen dauert zu lange.

Normalerweise greifen Sie in solchen Momenten instinktiv zu ngrok oder ähnlichen Diensten. Aber kommerzielle Alternativen bringen immer ärgerliche Einschränkungen mit sich: Traffic-Limits, URLs, die sich bei jedem Neustart ändern, oder kostenpflichtige Abonnements für grundlegende Funktionen. Kürzlich bin ich auf tunnelto gestoßen — ein Open-Source-Rust-Tool, das genau das tut, was der Name verspricht, ohne den zusätzlichen Aufwand.

Was ist dieses Tool

Das tunnelto-Projekt ermöglicht es, einen lokalen Webserver über einen Tunnel ins öffentliche Internet zu exponieren. Sie führen einen einzelnen Befehl im Terminal aus, erhalten eine gültige öffentliche URL und können diese an externe Dienste oder Clients für Demo-Zwecke weitergeben.

Das Hauptmerkmal ist, dass sowohl Client als auch Server in Rust unter Verwendung der async tokio-Engine geschrieben sind. Das führt zu moderatem Speicherverbrauch und schneller Verarbeitung eingehender Verbindungen. Keine schweren Runtimes oder Hintergrundprozesse, die Gigabytes an RAM verbrauchen.

Das Projekt-Repository ist verfügbar unter https://github.com/tunneltodev/tunnelto.

Wie es in der Praxis funktioniert

Die Installation dauert ein paar Minuten. Wenn Sie macOS verwenden, installieren Sie das Tool über Homebrew:

brew install agrinman/tap/tunnelto

Wenn Sie bereits eine Rust-Toolchain eingerichtet haben, können Sie das Paket über Cargo bauen:

cargo install tunnelto

Für andere Systeme hat der Autor kompilierte Binärdateien im Releases-Bereich auf GitHub vorbereitet.

Schnellstart

Angenommen, Sie haben eine Webanwendung, die lokal auf Port 8000 läuft. Sie können sie mit diesem Befehl nach außen exponieren:

tunnelto --port 8000

Nach der Ausführung öffnet das Tool einen Tunnel und stellt sofort eine funktionierende Adresse bereit. Alle Anfragen, die von dem Internet an diese Adresse kommen, werden sofort an Ihren lokalen Port weitergeleitet.

Nützliche Parameter

Im Arbeitsalltag benötigen Sie oft zusätzliche Konfiguration. Hier sind die Flags, die Zeit sparen:

  • --subdomain legt einen festen Subdomain-Namen fest, damit Sie die URL in den Webhook-Einstellungen nicht nach jedem Neustart ändern müssen
  • --scheme wechselt das Protokoll zwischen http und https, wenn Ihr lokaler Dienst eine sichere Verbindung erfordert
  • --dashboard-address startet eine lokale Oberfläche zum Untersuchen und Anzeigen eingehender Anfragen
  • --key akzeptiert einen API-Schlüssel für die Tunnel-Autorisierung

Beispielbefehl mit expliziter Subdomain-Angabe:

tunnelto --port 3000 --subdomain my-test-app

Wofür ist das nützlich

In der Entwicklung gibt es mehrere Szenarien, in denen Tunneling stundenlange Arbeit spart:

  1. Debugging eingehender Webhooks von Zahlungssystemen, Messengern oder OAuth-Providern direkt in Ihrem lokalen Debugger mit Breakpoints.
  2. Testen einer mobilen Anwendung auf einem echten Smartphone, das mit einem Mobilfunknetz verbunden ist, ohne WLAN-Router konfigurieren zu müssen.
  3. Schnelles Zeigen von Layouts oder Prototypen an Kollegen, während der Code noch nicht ins Repository gepusht oder auf einen Testserver deployed wurde.
  4. Überprüfen von HTTPS-Zertifikaten und Security-Headers vor der Veröffentlichung.

Persönliche Eindrücke

In der README wird die Möglichkeit erwähnt, die Server-Komponente selbst zu hosten, obwohl es an detaillierten Anleitungen in der Dokumentation mangelt. Wenn vollständige Datenverkehrs-Privatsphäre wichtig für Sie ist, müssen Sie sich in den Code vertiefen und einen Relay auf Ihrem eigenen VPS deployen.

Das Projekt hat nicht viele Stars (etwa 400), und Commits kommen nicht jeden Tag, aber für grundlegende Aufgaben funktioniert das Tool zuverlässig. Es startet schnell, erfordert keine Registrierung für grundlegendes Tunneling und erledigt genau eine klare Sache. Wenn Sie nach einem einfachen Open-Source-Ersatz für ngrok suchen, lohnt es sich, einen Blick ins Repository zu werfen und es auszuprobieren.

Ähnliche Projekte