it-swarm.com.de

Wenn Sie von Google Compute Engine aus eine Verbindung zum FTP-Server herstellen, erhalten Sie "Ich kann keine Verbindung aufbauen"

Ich ssh'ed zur Compute Engine VM und möchte von dort auf einen anderen Server ftp. Es wurde nach meinem Benutzernamen und Passwort gefragt, ich konnte mich ohne Probleme einloggen. Wenn ich jedoch ls oder get mache, erhalte ich diese Fehlermeldung:

500 I won't open a connection to 10.240.XX.XX (only to XX.XX.XX.XX)
ftp: bind: Address already in use

Diese 10.240.XX.XX ist meine interne IP-Adresse, die ich in ifconfig-Ergebnis gesehen habe.

Wie kann ich Dateien von einem anderen Server über FTP übertragen? System: Debian7

23
Nur Pinar

Sie verwenden den aktiven FTP-Modus, um eine Verbindung zu einem Server herzustellen, auf dem Pure-FTPd ausgeführt wird. Im aktiven Modus muss ein Server eine Verbindung zu einem Client herstellen, um eine Datenübertragungsverbindung zu öffnen (für Dateiübertragungen oder Verzeichnislisten). Dazu sendet der Client seine IP-Adresse mit dem Befehl PORT an den FTP-Server.

Wenn sich der FTP-Server außerhalb des privaten GCE-Netzwerks befindet, kann er offensichtlich keine Verbindung zum Client-Computer herstellen, da sich der Computer hinter einer Firewall und einem NAT befindet. 

Tatsächlich überprüft Pure-FTPd explizit, ob die IP-Adresse im Befehl PORT mit der Client-IP-Adresse der FTP-Steuerverbindung übereinstimmt. Es stimmt nicht überein, wenn der Client seine interne IP-Adresse innerhalb des GCE-Netzwerks sendet. Wenn in diesem Fall der Pure-FTPd-Server die Übertragung direkt ablehnt (ohne zu versuchen, eine Verbindung herzustellen), wird folgende Fehlermeldung angezeigt:

Ich werde keine Verbindung zu ... herstellen (nur zu ...)

(wobei der erste ... die vom Client im PORT-Befehl angegebene IP-Adresse ist [die lokale Adresse innerhalb des privaten GCE-Netzwerks) und der zweite ... die externe [NATed] -IP-Adresse des Clients, wie sie dem bekannt ist Server).


Selbst wenn der Client die externe [NATed] -Adresse im Befehl PORT gemeldet hat, funktioniert er nicht, da der Verbindungsversuch nicht an NAT und der Firewall vorbei kommt.

Aus diesem Grund gibt es den passiven FTP-Modus, in dem der Client eine Verbindung zum Server herstellt, um die Datenübertragungsverbindung zu öffnen. Eigentlich verwendet heute niemand den aktiven Modus.

Siehe (mein Artikel) FTP-Verbindungsmodi für Details zu den Modi.

Wechseln Sie also in den passiven Modus. Wie dies geschieht, ist kundenspezifisch.

  • Verwenden Sie in den meisten * nix ftp-Befehlszeilen-Clients die Befehlszeilenoption -p, obwohl der passive Modus ohnehin standardmäßig verwendet wird:

    -p Verwenden Sie den passiven Modus für die Datenübertragung. Ermöglicht die Verwendung von FTP in Umgebungen, in denen eine Firewall verhindert Verbindungen von der Außenwelt zurück zum Client-Rechner. Erfordert, dass der FTP-Server sup - portieren Sie den PASV-Befehl. Dies ist jetzt der Standard für alle Clients (ftp und pftp) aus Sicherheitsgründen betrifft die Verwendung des PORT-Übertragungsmodus. Das Flag wird nur zur Kompatibilität beibehalten und hat keine Auswirkung nicht mehr.

  • Einige Clients unterstützen auch den Befehl passive.

53
Martin Prikryl

Aktivieren Sie Ihr FTP im passiven Modus, wenn Sie bereits eine Verbindung hergestellt haben, geben Sie bitte ein

ftp> passive
Passive mode on.

Sie verwenden derzeit FTP im passiven Modus.

24
RizonBarns

Wenn Sie den PsPad-Editor verwenden und dasselbe Problem haben, versuchen Sie, diese Konfiguration für Ihre Verbindung festzulegen:

 enter image description here

2
paulalexandru