AWS: EC2 :: FTP-Client konnte nicht verbunden werden?

7

Mein Server-Betriebssystem: Amazon Linux

Ich versuche, FTP einzurichten. Ich habe:

  • Installiert vsftpd

  • Port 20-21 öffnen

  • offener Port 1024 - 1048

Grundsätzlich habe ich jeden dieser Schritte befolgt

  • Starten Sie den vsftpd-Dienst (der Status zeigt [ok] an)

Ich benutze Filezilla für meinen FTP-Client.

Hier ist meine Einstellung / Konfiguration:

Host: ec2-XX-XX-XXX-XX.compute-1.amazonaws.com

Port: - (leer, aber ich habe 20 und 21 versucht)

Servertyp: FTP - File Transder Protocol

Anmeldetyp: Normal

Benutzername: (versuchte root und ec2-user)

Übertragungsmodus: Versucht passiv und aktiv

Ich habe immer diesen Fehler:

Status: Waiting to retry...
Status: Resolving address of ec2-XX-XX-XXX-XX.compute-1.amazonaws.com
Status: Connecting to XX.XX.XXX.XX:21...
Error:  Connection timed out
Error:  Could not connect to server

Habe ich irgendwelche Konfigurationen / Einstellungen verpasst?

BEARBEITEN

Nach dem Ausführen von / sbin / iptables -L -n

Hier ist das Ergebnis:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Heide
quelle
3
Wenn Sie "Open Port 20-21 & 1024-1048" sagen, meinen Sie dies in der entsprechenden Sicherheitsgruppe oder in IP-Tabellen?
Decado
Klingt für mich auch nach Sicherheitsgruppen ...
iainlbc

Antworten:

3

Sie müssen den passiven Modus in vsftpd aktivieren und die elastische IP Ihrer Instanz abhören lassen:

  • pasv_enable = YES
  • pasv_min_port = 1024
  • pasv_max_port = 1048
  • port_enable = YES
  • pasv_address = Elastische IP

Öffnen Sie außerdem die Ports 1024-1048 in der Sicherheitsgruppe des Servers und auf Ihrem Linux-Server. Port 21 auch nicht vergessen;)

Andreas Berglund
quelle
2

Wenn Sie nur Dateien zwischen Ihrer EC2-Instanz und Ihrem lokalen Computer übertragen möchten, sehe ich keinen Grund, warum Sie einen FTP-Server installieren müssen. Sie können entweder psftp oder filezillia mit Ihrem privaten Schlüssel verwenden, um eine sichere Verbindung zu Ihrer EC2-Instanz über Port 22 herzustellen. Dieser Beitrag enthält schrittweise Anweisungen. http://lzw-programmingjourney.blogspot.com/2011/12/set-up-ftp-server-on-amazon-aws-ec2.html

L. Houston
quelle
1

Aus dem Protokoll geht hervor, dass der Port 21 auf irgendeine Weise blockiert wird.

Auf der Serverseite müssen Sie überprüfen, ob VSFTPD ALLE IP-Adressen abhört, und dies mit dem Befehl überprüfen

netstat -ntlp

Danach sollte der Port 21 in der Amazon Cloud-Sicherheitsgruppe von der gewünschten IP-Adresse aus geöffnet sein.

Versuchen Sie vor dem Herstellen einer Verbindung zum Server, den NMAP-Port-Scan auszuführen, um festzustellen, ob der Port 21 tatsächlich von der Clientseite geöffnet ist. dafür läuft es:

nmap -vv -P0 (Server-IP-Adresse oder DNS)

Farhan
quelle
0

Sie sagen nicht, welche Linux-Distribution Sie verwenden, daher ist es schwer, sicher zu sein, aber ich vermute, dass Sie die Linux-Firewall (iptables) konfigurieren müssen, um FTP zuzulassen.

Versuche Folgendes

sudo iptables -I INPUT  -p tcp -m tcp --sport 20 --dport 1024:1048 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 21 -j ACCEPT

BEARBEITEN Es sieht nicht so aus, als ob Ihre EC2-Instanz iptables das Problem ist, also muss es etwas anderes sein. Überprüfen Sie in Ihrer AWS-Konsole, ob sich die Instanz in der Standardsicherheitsgruppe befindet und ob die Standardsicherheitsgruppe ähnliche Einstellungen enthält.

Connection Method   Protocol   From Port   To Port    Source (IP or Group) 
-          tcp      tcp        20          20         0.0.0.0/0
-          tcp      tcp        21          21         0.0.0.0/0
-          tcp      tcp        1024        1048       0.0.0.0/0

Wenn dies der Fall ist, liegt Ihr Problem an einer anderen Stelle, da etwas anderes Ihre Verbindung blockiert.

Iain
quelle
Wenn ich "cat etc / issue" gemacht habe, heißt es: Amazon Linux AMI Release 2010.11.1 (Beta). Wie konfiguriere ich die Linux-Firewall (iptables)? kann einige Beispiele zeigen?
Heathub
Nachdem ich den von Ihnen angegebenen Befehl hinzugefügt, Apache und vsftpd neu gestartet und dann versucht habe, eine Verbindung
herzustellen
Können Sie die Ausgabe /sbin/iptables -L -nals Bearbeitung Ihrer Frage veröffentlichen?
user9517
Ich habe meine Frage bearbeitet. Bitte lassen Sie mich wissen, wenn Sie Informationen benötigen, da ich es immer noch nicht zum Laufen bringen kann. Es funktioniert gut mit SFTP, aber nur FTP-Client (wie Filezilla) kann keine Verbindung herstellen
Heathub
@ Heathub: siehe meine Bearbeitung
user9517
-1

Ich benutze Filezilla, um mich anzumelden, und folge den Schritten unten.

So stellen Sie mit Filezilla eine Verbindung zu einer laufenden Amazon EC2-Instanz her:

  1. Bearbeiten -> Einstellungen -> Verbindung -> SFTP Klicken Sie auf "Schlüsseldatei hinzufügen".

  2. Navigieren Sie zum Speicherort Ihrer PEM-Datei und wählen Sie sie aus.

  3. In einem Meldungsfeld werden Sie aufgefordert, die Datei in das ppk-Format zu konvertieren. Klicken Sie auf Ja, geben Sie der Datei einen Namen und speichern Sie sie irgendwo.

  4. Wenn die neue Datei in der Liste der Schlüsseldateien angezeigt wird, fahren Sie mit dem nächsten Schritt fort. Wenn nicht, klicken Sie auf "Schlüsseldatei hinzufügen ..." und wählen Sie die konvertierte Datei aus.

  5. Datei -> Site Manager

  6. Fügen Sie eine neue Site mit den folgenden Parametern hinzu:

    Host: Ihr öffentlicher DNS-Name der ec2-Instanz

    Protokoll: SFTP

    Anmeldetyp: Normal

    Benutzer: ec2-Benutzer

Drücken Sie die Verbindungstaste

Video-Tutorial: Klicken Sie hier

Yasitha Chinthaka
quelle
SFTP ist kein FTP. Das sind völlig andere Protokolle.
Ceejayoz