QNAPTutorials

FTP-Passiv-Modus auf QNAP NAS mit dynamischer IP korrigieren

Wenn Ihre QNAP-NAS hinter einem Internet-Anschluss mit wechselnder IP-Adresse (dynamische IP) steht, kennen Sie das Problem: Der FTP-Passiv-Modus funktioniert von extern nicht, weil die NAS im passiven Modus ihre interne IP-Adresse (z. B. 192.168.0.16) an den Client sendet.

Die QNAP-Weboberfläche erlaubt leider nur die Eingabe einer statischen IPv4-Adresse für diesen Fall. Mit dieser Anleitung lösen wir das Problem, indem wir ein kleines Skript erstellen, das die aktuelle öffentliche IP-Adresse automatisch in der Konfigurationsdatei der NAS aktualisiert.

Schritt 1: SSH-Zugriff auf die QNAP NAS aktivieren und herstellen

Zuerst benötigen wir Zugriff auf die Konsole der NAS.

  1. Aktivieren Sie SSH: Melden Sie sich in der QNAP-Weboberfläche an und navigieren Sie zu Systemsteuerung > Netzwerk und Dateidienste > Telnet/SSH. Aktivieren Sie hier den SSH-Dienst.
  2. Verbinden Sie sich mit der NAS: Verwenden Sie ein SSH-Tool (wie PuTTY unter Windows oder das Terminal unter macOS/Linux), um eine Verbindung herzustellen. Ersetzen Sie Ihre_NAS_IP durch die lokale IP-Adresse Ihrer NAS.
ssh admin@Ihre_NAS_IP

Schritt 2: Das Skript erstellen

Dieses Skript erledigt die Hauptarbeit: Es holt sich die aktuelle öffentliche IP-Adresse und schreibt sie in die Konfigurationsdatei. Auf der QNAP NAS steht der Editor vi zur Verfügung.

    Öffnen Sie den vi-Editor: Geben Sie den folgenden Befehl ein, um eine neue Skript-Datei namens update_ftp.sh zu erstellen.

    vi /root/update_ftp.sh

    Fügen Sie den Skript-Code ein: Drücken Sie die Taste i, um in den Einfügemodus zu wechseln, und kopieren Sie den folgenden Code in das Terminalfenster.

    #!/bin/sh
    # Ruft die öffentliche IP-Adresse über einen externen Dienst ab
    PUBLIC_IP=$(wget -qO- http://ipv4.icanhazip.com)
    
    # Überprüft, ob die IP erfolgreich abgerufen wurde
    if [ -z "$PUBLIC_IP" ]; then
        echo "Konnte öffentliche IP nicht abrufen. Beende das Skript."
        exit 1
    fi
    
    # Ersetzt die alte IP im Feld WanIp
    sed -i "s/WanIp = .*/WanIp = $PUBLIC_IP/" /etc/config/uLinux.conf
    
    # Setzt das Feld EnableUserWanIp auf TRUE
    sed -i '/EnableUserWanIp =/s/= .*/= TRUE/' /etc/config/uLinux.conf
    
    # Startet den FTP-Dienst neu, um die Änderungen zu übernehmen
    /etc/init.d/ftp.sh restart

    Speichern und schließen: Drücken Sie Esc, um den Einfügemodus zu verlassen, und geben Sie dann :wq ein, gefolgt von Enter.

    Schritt 3: Skript ausführbar machen

    Damit die NAS das Skript ausführen kann, müssen Sie es als ausführbar markieren.

    chmod +x /root/update_ftp.sh

    Schritt 4: Den Cron-Job einrichten

    Ein Cron-Job sorgt dafür, dass das Skript regelmäßig automatisch ausgeführt wird (z. B. alle 30 Minuten), um sicherzustellen, dass die IP-Adresse immer aktuell ist.

    Öffnen Sie die Cron-Tabelle:

    crontab -e

    Fügen Sie den Cron-Job hinzu: Drücken Sie i und fügen Sie die folgende Zeile am Ende der Datei ein:

    */30 * * * * /root/update_ftp.sh > /dev/null 2>&1

    Speichern und schließen: Drücken Sie Esc, geben Sie :wq ein und drücken Sie Enter.

    Wichtiger Hinweis: Port-Weiterleitung im Router

    Damit der FTP-Zugriff von extern funktioniert, müssen Sie in Ihrem Router die folgenden Ports an die interne IP-Adresse Ihrer NAS (z. B. 192.168.0.16) weiterleiten:

    • Port 21 (TCP): Dies ist der Steuerkanal für FTP.
    • Portbereich (TCP): Sie benötigen einen Portbereich für den passiven Modus. Eine Spanne von 30 Ports ist empfehlenswert, zum Beispiel 55536-55566 (TCP).

    Lemix
    Datenschutz-Übersicht

    Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.