Zielgruppe : Mittelstufe
  • 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

Problematik: Du entwickelst eine Webanwendung auf deiner Ubuntu‑Maschine und möchtest sie von außerhalb deines Heimnetzwerks zugänglich machen? Du bist genau richtig hier! In diesem Artikel zeigen wir dir, wie du einen lokalen Dienst (z. B. auf Port 8080) im Internet verfügbar machst, indem du das Port‑Forwarding auf deinem Internet‑Router konfigurierst.

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.1 ou mafreebox.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!

Verwandte Artikel