Ich kann keine große Datei aus dem Internet per FTP auf meine Linux-VM übertragen. Nach einer Weile läuft es ab.
Der eigentliche Fehler lautet " Antwort von Steuerverbindung konnte nicht gelesen werden - Zeitüberschreitung ". Dieser Fehler tritt nach einigen Minuten auf, nachdem ein guter Teil der Datei bereits übertragen wurde.
Das Setup ist:
FTP-Client: ncftpget wird unter Linux unter VMWare Player 3.0 ausgeführt FTP-Server: Computer eines anderen im Internet, Konfiguration unbekannt Gastbetriebssystem: Ubuntu 8.10 Linux 32-Bit mit installierten vmxnet- und vmware-Tools. Host-Betriebssystem: Vista 64-Bit Netzwerk: Linux VM stellt über Bridged NIC eine Verbindung zum Internet her (auch NAT ausprobiert). FTP-Modus: PASVIch habe einige Forenbeiträge gefunden, in denen irgendwo eine Zeitüberschreitung von 2 Minuten erwähnt wurde. Aber genau, wo und wie man es behebt, war nicht klar. Einige Schritte zur Fehlerbehebung wurden bereits versucht:
- Ich habe von VMWare Player 3.0 auf VirtualBox 3.0.x umgestellt, aber kein Glück.
- Ich habe auch von NAT zu Bridged Virtual NICs gewechselt, aber kein Glück
UPDATE Netstat auf der Linux-VM und die entsprechende Administrationsseite auf dem DIR-655-Router zeigen beide an, dass die Verbindung aktiv und in Ordnung ist (TCP-Status 'ESTABLISHED'). Vista sieht die Verbindung überhaupt nicht, was meiner Meinung nach normal ist, wenn der Verbindungsstatus nur innerhalb der VM verwaltet wird.
Hier ist die Ausgabe von netsh interface tcp show global unter Vista, falls es nützlich ist:
C: \ Users \ alex> netsh interface tcp show global Aktiven Status abfragen ... Globale TCP-Parameter ---------------------------------------------- Empfangsseitiger Skalierungsstatus: aktiviert Schornsteinentladestatus: deaktiviert Auto-Tuning-Pegel des Empfangsfensters: stark eingeschränkt Add-On-Überlastungskontrollanbieter: keine ECN-Fähigkeit: deaktiviert RFC 1323-Zeitstempel: deaktiviert ** Die obige Einstellung für die automatische Abstimmung ist das Ergebnis der Windows-Skalierungsheuristik Überschreiben einer lokalen / Richtlinienkonfiguration.
quelle
Antworten:
Versuchen Sie zur Fehlerbehebung, dieselbe Datei über
wget
oder herunterzuladencurl
. Ich vermute, dass PEra korrekt ist, NOOP-Befehle verhindern dies und möglicherweise werden sie durch wget oder curl gesendet.quelle
Wenn Sie NAT durchlaufen, werden Sie wahrscheinlich von den NAT-Timern getrennt. Ich sehe das von Hotelzimmern aus, wo ich in eine Maschine ssh und für einige Zeit etwas versäume (manchmal nur 5 Minuten!)
Probieren Sie diese aus. Dadurch wird einmal pro Minute ein Keepalive für alle TCP-Streams gesendet, unabhängig von der Aktivität auf dem Socket.
Beachten Sie, dass der FTP-Client möglicherweise keine Keepalives verwendet. Es ist etwas, das die Anwendung anfordern muss. Wenn dies fehlschlägt, funktioniert die Installation eines anderen FTP-Clients möglicherweise besser. Der NetBSD-FTP-Client (lukemftp) ist möglicherweise verfügbar und der beste Befehlszeilen-FTP-Client, den ich bisher gesehen habe.
Es ist auch möglich, dass das Remote-Ende die Verbindung aufgrund von Inaktivität schließt. Wenn ja, hat es eine ziemlich gebrochene Vorstellung von der Realität. Wenn diese oben genannten TCP-Keepalive-Hacks das Problem nicht beheben, muss der Client entweder regelmäßig einen Befehl senden (NOOP usw.) oder die Administratoren des FTP-Servers müssen ihr Ende ändern.
quelle
Möglicherweise handelt es sich um ein Filtergerät auf dem Weg zwischen Ihrer VM und dem FTP-Server. Die meisten Firewalls (einschließlich Heimrouter) verfügen über eine Statustabelle, in der inaktive TCP-Sitzungen nach einer bestimmten Zeitüberschreitung zurückgesetzt werden.
Sie können die Netzwerkkarte der VMs in den Bridged-Modus (anstelle von NAT) ändern, um das Host-Betriebssystem zu sortieren. Stellen Sie dann sicher, dass Ihr FTP-Client regelmäßig NOOP-Befehle sendet , um den Befehlskanal offen zu halten. Es gibt Firewalls, um die die Datenverbindung geschlossen wird, wenn sie sehen, dass die Befehlssitzung geschlossen ist. Unabhängig davon, ob die Datenverbindung inaktiv ist oder Datenverkehr führt ...
HTH,
PEra
quelle
Wenn Sie dies über die Befehlszeile tun, versuchen Sie, 'Hash' zu aktivieren ('Binär' ist eine andere, die ich immer einschalte). Dies kann zu genügend Datenverkehr auf dem Steuerport führen, um eine Zeitüberschreitung zu vermeiden.
quelle
FTP verwendet zwei Sockets - einen zur Steuerung und einen für Daten.
Es ist wahrscheinlich, dass es die NAT-Statustabellen auf der VM sind, die das Zeitlimit für die Steuerverbindung aufgrund von Inaktivität auf diesem Socket verursachen.
Möglicherweise können Sie dies umgehen, indem Sie "Active FTP" auf dem VM-System aktivieren, was hoffentlich dazu führt, dass VMware FTP-Sitzungen aktiv überwacht und den Control Socket am Leben hält, solange noch Daten fließen.
quelle
Wenn der FTP-Server Vista ist, rufen Sie die Eigenschaften der FTP-Site auf und erhöhen Sie das Zeitlimit von 15 Minuten (Standard). Wie groß ist die Datei, die Sie übertragen möchten?
quelle