• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

FTP über Internet will nicht

xorg1990

New member
Hi, habe auf den Raspberry eine FTP Server eingerichtet (ProftpD).
Lokal kann ich wunderbar verbinden aber übers Internet sagt er immer:

Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Befehl: MLSD
Fehler: Die Datenverbindung konnte nicht hergestellt werden: EHOSTUNREACH - No route to host


Den Verbindungstyp habe ich schon auf aktiv gestellt bringt aber nix.

Der komplette log schaut so aus:
Status: Auflösen der IP-Adresse für ........ddns.net
Status: Verbinde mit 93.207.121.6:25...
Status: Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort: 220 ProFTPD 1.3.5 Server (DebianRaspe) [192.168.178.29]
Befehl: USER Denny
Antwort: 331 Password required for Denny
Befehl: PASS *********
Antwort: 230 User Denny logged in
Befehl: SYST
Antwort: 215 UNIX Type: L8
Befehl: FEAT
Antwort: 211-Features:
Antwort: SITE MKDIR
Antwort: MFF modify;UNIX.group;UNIX.mode;
Antwort: REST STREAM
Antwort: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
Antwort: UTF8
Antwort: EPRT
Antwort: SITE SYMLINK
Antwort: EPSV
Antwort: SITE UTIME
Antwort: MDTM
Antwort: SITE RMDIR
Antwort: TVFS
Antwort: SITE COPY
Antwort: MFMT
Antwort: SIZE
Antwort: LANG en-GB.UTF-8*
Antwort: 211 End
Befehl: OPTS UTF8 ON
Antwort: 200 UTF8 set to on
Status: Verbunden
Status: Empfange Verzeichnisinhalt...
Befehl: PWD
Antwort: 257 "/" is the current directory
Befehl: TYPE I
Antwort: 200 Type set to I
Befehl: PORT 192,168,2,100,199,140
Antwort: 500 Illegal PORT command
Befehl: PASV
Antwort: 227 Entering Passive Mode (192,168,178,29,167,81).
Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Befehl: MLSD
Fehler: Die Datenverbindung konnte nicht hergestellt werden: EHOSTUNREACH - No route to host
Fehler: Zeitüberschreitung der Verbindung
Fehler: Verzeichnisinhalt konnte nicht empfangen werden

Interessant ist folgendes: "Antwort: 500 Illegal PORT command"
Ich konnte Port 21 nicht auf der FritzBox freigeben warum auch immer habe deshalb Port 25 genommen.
Der ist auch in Proftpd conf eingestellt und in iptables freigegeben. Verbinden tut er ja aber warum kommt kein Verzeichnis?
 
Nach dem Verbindungsaufbau welchselt die FTP Verbindung auf einen andern Port, der auf irgendeiner Seite zufällig bestimmt wird: https://de.wikipedia.org/wiki/File_Transfer_Protocol#Verbindungsarten

Eine aktive Verbindung wirst du von deinem Gerät aus nicht herstellen können, da es wahrscheinlich hinter irgendeinem NAT liegt und/oder eine Firewall die Verbindung unterbindet. Da aber dein FTP-Server aber auch hinter einem NAT (FritzBox) sitzt, kannst du auch keine passive Verbindung aufbauen - außer du leitest den kompletten Portbereich, der da per FTP verwendet werden kann, von der Fritzbox an den FTP weiter. Ich würde dir empfehlen, dass du den VPN von der FritzBox nutzt. Hat auch noch den Vorteil, dass nicht jeder mit deinem FTP Server reden kann... v.A. da du hier die IP gepostet hattest.

Wenn du eine ipv6 Netzwerk hättest, könntest du das komplette Gerät ins Internet stellen... was aber auch Risiken und Probleme birgt.

PS: ich glaube die FritzBox bietet selber einen FTP an - deswegen kannst du den Port 21 nicht verwenden...
 
v.A. da du hier die IP gepostet hattest.
Ahhh ich schlampe. Egal auf den Raspberry ist nix weiter drauf.

Ich würde dir empfehlen, dass du den VPN von der FritzBox nutzt.
Ausgeschlossen, irgendwer betreibt eine USB Festplatte an der Fritz box(ist die vom Radioclub) damit ist der VPN schon benutz oder kann ich mehrere Rechner freigeben?

Proftp bietet in der config Passive Ports an, ab 41000 bis x, wenn ich die Freigebe muss es doch dann gehen oder nicht?
 
xorg meine antwort auf korbinian gesehen? ich weiss nicht ob sich das mit deiner antwort überschnitten hat.
 
mikdoe schrieb:
xorg meine antwort auf korbinian gesehen? ich weiss nicht ob sich das mit deiner antwort überschnitten hat.
Nee deine Antwort war noch nicht zu sehen. Wo schalte ich den Fritzbox FTP ab, hab das nicht gefunden.

Versteh ich nicht ob nun Port 21 oder 25 ist doch trivial. Nodejs rennt auch auf Port 2000 und das klappt prima.

kkapsner schrieb:
Kann ich machen, dauert nur komme aktuell nicht in den Club.
 
So, so so so so.
TCP via passive Ports klappt einwandfrei.
Habe es so gelöst, Die passiven Ports in der proftpd config freigegeben. Diese dann in iptables geöffnet, in der FritzBox freigegeben und bei Filezilla verbinde ich dann ich dann über den Aktiven Modus, die Anmeldung geschieht über den Port 25.:)

Jetzt 2 andere Probleme:

Ich bräuchte eine Port Umleitung von Port 80 auf Port 2000 in der Box geht das? Über iptable klapp nicht.
Also so das ich vom Browser auf die node Anwendung zugreifen kann Ohne Portangabe in der Adresse.
Die DNS Sache läuft über no-ip muss ich da was beachten?

Dann noch:

Ich verbinde mich via ssh zum Raspberry und starte so NodeJS, nach einen Tag steht dann da "Write failed: Broken pipe".
Dachte ok ist ein Timeout oder so, verbindest halt neu, aber NodeJS ist auch aus ich muss das immer neu Starten.:confused:
 
mikdoe schrieb:
das andere weiß ich leider nicht
Schlecht. Egal muss ich halt selber mal gucken. Im Speedport gab/gibt es da eine extra Menüpunkt "Portumleitung".

kkapsner schrieb:
Weißt du denn, welche Pipe damit gemeint ist?
Die vom SSH bestimmt. Ich bin nicht mehr via SSH mit der Raspe verbunden. Das System starte auch nicht neu, das sehe ja an der uptime.

Könnte ja noch via Remotedesktop arbeiten, macht aber keine sinn ich brauch ja keine Grafik.

Hm:
How to prevent "Write Failed: broken pipe" on SSH connection? - Ask Ubuntu

Klärt aber nicht warum NodeJS sich auch mit den disconnect beendet. Es sei denn man wird als Benutzer abgemeldet.
 
Im Speedport gab/gibt es da eine extra Menüpunkt "Portumleitung".
Was mikdoe da geschrieben hat, ist genau das, was du willst.
Es sei denn man wird als Benutzer abgemeldet.
Wenn die SSH-Verbindung unterbrochen wird, wird die Session beendet und damit natürlich auch alle Programme, die darin gelaufen sind. Wenn du willst, dass nodjs weiter läuf, musst du es außerhalb (z.B. als Service) laufen lassen.
 
kkapsner schrieb:
wird die Session beendet und damit natürlich auch alle Programme, die darin gelaufen sind.
Asso läuft das ab, dann muss ich mich um ein "KeepAlive" gedanken machen.

kkapsner schrieb:
Wenn du willst, dass nodjs weiter läuf, musst du es außerhalb (z.B. als Service) laufen lassen.
Ausgeschlossen, dann sehe ich die Konsolen Logs nicht.
 
Zurück
Oben