Einen lokalen Dienst von Ubuntu aus im Internet verfügbar machen: Leitfaden zum vollständigen Port-Forwarding
Publié le 28 May 2025
- Das Problem: NAT und private Adressen
- Schritt 1 : Identifizieren Sie Ihre öffentliche IP-Adresse
- Schritt 2: Kennen Sie die lokale IP-Adresse Ihres Ubuntu-Rechners
- Schritt 3: Portweiterleitung auf Ihrem Router konfigurieren
- Schritt 4: Konfiguration des Dienstes auf Ubuntu
- Schritt 5: Konfiguration der Ubuntu-Firewall
- Schritt 6 : Test und Validierung
- Gute Praktiken und Sicherheit
- Alternativen zum Port forwarding
- Fehlerbehebung
- Fazit
-
Vorausgesetzte Kenntnisse: Grundkenntnisse von Ubuntu, dem Terminal und grundlegenden Netzwerkkonzepten
-
Technische Konzepte : NAT, Portweiterleitung, Firewall, Umkehrproxy
-
Systembefehle: Verwendung des Terminals, Netzwerkkonfiguration
-
Erweiterte Abschnitte : Monitoring, Sicherheit, Cloud-Alternativen
Das Problem: NAT und private Adressen
Standardmäßig verwendet Ihre Internet-Box NAT (Network Address Translation), um eine einzelne öffentliche IP-Adresse zwischen allen Geräten Ihres Heimnetzwerks zu teilen. Ihre lokalen Geräte verwenden private IP-Adressen (192.168.x.x, 10.x.x.x usw.), die im Internet nicht routbar sind.
Wenn Sie einen Dienst auf Ihrer Ubuntu-Maschine starten (z. B. einen Webserver auf Port 8080), ist er nur über Ihr lokales Netzwerk erreichbar. Damit er über das Internet zugänglich ist, müssen wir eine Portweiterleitung konfigurieren.
Schritt 1 : Identifizieren Sie Ihre öffentliche IP-Adresse
Zunächst einmal holen wir die öffentliche IP-Adresse deiner Internetverbindung:
# Plusieurs méthodes au choix
curl ifconfig.me
curl ipecho.net/plain
wget -qO- http://ipecho.net/plain
# Ou encore
curl -s checkip.amazonaws.com
Diese IP-Adresse ist die, die die Internetnutzer verwenden werden, um auf Ihren Dienst zuzugreifen.
Schritt 2: Kennen Sie die lokale IP-Adresse Ihres Ubuntu-Rechners
Deine Ubuntu-Maschine hat eine private IP-Adresse in deinem lokalen Netzwerk. Um sie zu erfahren:
# Afficher toutes les interfaces réseau
ip addr show
# Ou plus spécifiquement pour l'interface principale
ip route get 1.1.1.1 | awk '{print $7; exit}'
# Alternative avec hostname
hostname -I | awk '{print $1}'
Notiere diese Adresse (zum Beispiel`192.168.1.100`), wir werden es für die Konfiguration benötigen.
Schritt 3: Portweiterleitung auf Ihrem Router konfigurieren
Die Konfiguration variiert je nach Modell Ihrer Box, aber das Prinzip bleibt gleich.
Zugriff auf die Administrations-Oberfläche
Öffnen Sie Ihren Browser und gehen Sie zur Weboberfläche Ihrer Box :
-
Freebox :
192.168.1.1oumafreebox.freebox.fr -
Livebox Orange:`192.168.1.1`
-
SFR-Box :
192.168.1.1 -
Bbox Bouygues :
192.168.1.254
Konfiguration der Weiterleitung
Suchen Sie den Abschnitt, der dem Port Forwarding gewidmet ist (die Namen variieren) :
-
Portweiterleitung
-
NAT/PAT
-
Portweiterleitung
-
Spiele-Server
Erstellen Sie eine neue Regel mit diesen Parametern :
| Feld | Wert |
|---|---|
Name/Description |
Ubuntu Web Service" (oder ein anderer expliziter Name) |
externer Port (oder öffentlicher Port) |
8080 |
Interne IP-Adresse |
Die IP-Adresse Ihres Ubuntu-Rechners (z.B. 192.168.1.100) |
Interner Port (oder privater Port) |
8080 |
Protokoll |
TCP |
Staat |
Aktiviert |
Schritt 4: Konfiguration des Dienstes auf Ubuntu
Stellen Sie sicher, dass Ihr Dienst auf allen Schnittstellen lauscht, nicht nur auf localhost:
# ✅ Correct : écoute sur toutes les interfaces
python3 -m http.server 8080 --bind 0.0.0.0
# ❌ Incorrect : écoute seulement en local
python3 -m http.server 8080 --bind 127.0.0.1
Um zu überprüfen, dass Ihr Dienst korrekt zuhört:
# Vérifier les ports en écoute
sudo netstat -tlnp | grep :8080
# ou avec ss (plus moderne)
sudo ss -tlnp | grep :8080
Du solltest etwas sehen wie`0.0.0.0:8080`und nein`127.0.0.1:8080`.
Schritt 5: Konfiguration der Ubuntu-Firewall
Ubuntu verwendet standardmäßig UFW (Uncomplicated Firewall). Überprüfen Sie seinen Status und öffnen Sie den Port, falls notwendig :
# Vérifier le statut du pare-feu
sudo ufw status
# Si le pare-feu est actif, autoriser le port 8080
sudo ufw allow 8080/tcp
# Ou plus spécifiquement pour un service web
sudo ufw allow 'Apache' # si vous utilisez Apache
sudo ufw allow 'Nginx Full' # si vous utilisez Nginx
Schritt 6 : Test und Validierung
Test aus dem lokalen Netzwerk
Zuerst testen Sie den Zugriff von einer anderen Maschine in Ihrem lokalen Netzwerk:
# Remplacez par l'IP locale de votre machine Ubuntu
curl http://192.168.1.100:8080
Test von außen
Jetzt teste über das Internet mit deiner öffentlichen IP:
# Remplacez par votre IP publique
curl http://VOTRE_IP_PUBLIQUE:8080
Sie können auch Online-Tools wie :
Gute Praktiken und Sicherheit
Basissicherung
# Configurer fail2ban pour protéger contre les attaques par force brute
sudo apt update && sudo apt install fail2ban
# Limiter l'accès avec UFW (exemple : autoriser seulement certaines IP)
sudo ufw allow from 203.0.113.0/24 to any port 8080
Überwachung der Verbindungen
# Surveiller les connexions en temps réel
sudo netstat -an | grep :8080
# Logs des connexions (selon votre application)
sudo tail -f /var/log/nginx/access.log # pour Nginx
sudo journalctl -f -u your-service # pour un service systemd
Verwendung eines Reverse Proxys
Für bessere Sicherheit und Flexibilität ziehen Sie die Verwendung eines Reverse-Proxys wie Nginx in Betracht:
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Alternativen zum Port forwarding
Cloud-Lösungen
-
ngrok: temporär gesicherter Tunnel
-
Cloudflare Tunnelkostenlose und sichere Lösung
-
serveo.net: einfacher SSH-Tunnel
# Exemple avec ngrok
ngrok http 8080
# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net
VPS und Reverse-Proxy
Für den professionellen Einsatz sollten Sie die Verwendung eines VPS mit einem Reverse Proxy in Betracht ziehen, der über ein VPN auf Ihre lokale Infrastruktur verweist.
Fehlerbehebung
Häufige Probleme
| Problem | Lösung |
|---|---|
Service ist von außen nicht erreichbar |
Überprüfen Sie die Port-Weiterleitungskonfiguration und dass der Dienst auf 0.0.0.0 lauscht. |
Verbindung abgelehnt |
Der Dienst ist nicht gestartet oder er lauscht nur auf 127.0.0.1 |
Verbindungszeitüberschreitung |
Firewall-Problem (Box oder Ubuntu) oder fehlerhaft konfiguriertes Port-Forwarding |
öffentliche IP ändert sich régulièrement |
Konfigurieren Sie ein dynamisches DNS (DynDNS, No-IP, usw.) |
Netzwerk-Debugging
# Tester la connectivité locale
telnet localhost 8080
# Tester depuis une autre machine du réseau
telnet 192.168.1.100 8080
# Vérifier les routes réseau
ip route show
# Analyser le trafic réseau
sudo tcpdump -i any port 8080
Fazit
Das Exponieren eines lokalen Dienstes im Internet erfordert eine sorgfältige Konfiguration von Portweiterleitung, Sicherheit und Überwachung. Obwohl dieser Ansatz perfekt für die Entwicklung oder persönliche Projekte ist, denken Sie an robustere Alternativen (VPS, CDN, Cloud-Dienste) für den produktiven Einsatz.
Das Wichtigste ist, immer die Sicherheit im Hinterkopf zu behalten: Verwende starke Passwörter, aktualisiere dein System regelmäßig und überwache den Zugriff auf deine offengelegten Dienste.
Zögern Sie nicht, Ihre Erfahrungen und Fragen in den Kommentaren zu teilen!