2016-04-19 8 views
0

Ich habe das FTP ordnungsgemäß auf dem Localhost in einer Google Compute Engine funktioniert. Ich habe eine Firewall-Regel hinzugefügt, um Port 21 zu erlauben, aber ich kann immer noch keine Verbindung von der Welt zu FTP herstellen.Google Compute Engine FTP-Firewall

Irgendwelche Ideen?

Antwort

0

FTP ist ein komplexes Protokoll, das mehrere TCP-Verbindungen verwendet, eine Funktion, die immer Probleme verursacht. Port 21 wird nur für den Befehlskanal verwendet, aber die Datenübertragung selbst erfolgt über eine neue TCP-Verbindung, bei der die erforderlichen Endpunkte (d. H. Portnummern) dynamisch zugewiesen und im Befehlskanal kommuniziert werden.

Dieses Verhalten macht es unmöglich, mit einfachen Firewalls sicher zu arbeiten, d. H. Sie müssten ständig eine große Auswahl an Ports haben. Intelligentere Firewalls bieten Helfer, die die Befehlsverbindung überwachen und Ports dynamisch öffnen. Aber auch diese verlieren, wenn Sie Verschlüsselung verwenden, d. H. FTP mit TLS (FTPS), weil sie die Befehlsverbindung nicht mehr überprüfen können.

Also, wenn es eine direkte Verbindung zwischen Client und Server ohne Firewalls dazwischen gibt FTP funktioniert in der Regel gut. Wenn sich eine Seite hinter einer Firewall oder NAT (wie die meisten Heimanwender) befindet, können Sie nach dem Spielen mit aktivem oder passivem FTP-Modus Erfolg haben. Aber wenn beide Seiten hinter einer Firewall oder NAT sind, dann haben Sie normalerweise verloren.

Anstatt FTP zu verwenden, würde ich SFTP empfehlen. Dieses Protokoll basiert auf SSH und verwendet nur eine einzige TCP-Verbindung. Es kann somit einfach mit Firewalls konfiguriert werden. Abgesehen davon ist es sicherer, d. H. Alles ist standardmäßig verschlüsselt. Viele Clients wie FileZilla oder WinSCP unterstützen es.

Verwandte Themen