it-swarm.com.de

Java 7 verhindert FTP-Übertragungen unter Windows Vista und 7, wenn die Firewall aktiviert ist. Irgendwelche Ideen?

Java 7 verhindert FTP-Übertragungen unter Windows Vista und 7.

Bei FTP muss vor der Übertragung einer Datei ein PORT- oder PASV-Befehl gesendet werden. Sobald einer der Befehle gesendet wird, schließt die Windows-Firewall den Socket, der den Befehl gesendet hat. Dies geschieht nur, wenn die Firewall eingeschaltet ist und eine Ausnahme für Java.exe nicht vorhanden ist. Ich vermute, dieses Problem hängt mit Java 7 zusammen, das den neuen Vista IP-Stack verwendet.

Hat jemand irgendwelche Ideen, wie man dieses Problem behebt oder umgeht? Wir verteilen eine Java-FTP-Bibliothek, so dass wir selbst keine Ausnahmen hinzufügen können.

Ausnahme:

Java.net.SocketException: Permission denied: recv failed

JRE-Versionsinfo:

Java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

FOLLOW-UP 1 (14. November 2011): Oracle hat das Problem analysiert und festgestellt, dass es sich um einen Fehler in der Windows-Firewall und/oder dem IPv6-Stack handelt. Es gelang ihnen, das Problem mit einer nativen C-App (d. H. Einer Nicht-Java-App) zu replizieren. Dies ist ein starker Beweis dafür, dass der Fehler nicht in Java vorliegt. Sie haben Microsoft informiert, sodass der Ball jetzt an ihrem Platz ist. Weitere Informationen finden Sie unter http://bugs.Sun.com/bugdatabase/view_bug.do?bug_id=7077696

FOLLOW-UP 2 (27. Juli 2012): Ein (sehr hilfreicher) Kontakt bei Oracle hat mir mitgeteilt, dass das Problem jetzt bei Microsoft eskaliert wurde. Wir hoffen, bald Ergebnisse zu sehen.

FOLLOW-UP 3 (15. August 2012): Unser Kontakt bei Oracle hat uns mitgeteilt, dass Microsoft den Fehler akzeptiert hat und ihn gerade priorisiert.

FOLLOW-UP 4 (21. September 2012): Microsoft hat einen Patch erstellt, der derzeit von Oracle getestet wird. Kein Wort zu einem Veröffentlichungsdatum.

FOLLOW-UP 5 (11. Oktober 2012): Endlich Erfolg! Microsoft hat öffentlich einen Hotfix veröffentlicht. Sie implizieren, dass das Update zukünftig in einem allgemeinen Softwareupdate enthalten ist:

"Wenn Sie von diesem Problem nicht schwerwiegend betroffen sind, empfehlen wir Ihnen, auf das nächste Softwareupdate zu warten, das diesen Hotfix enthält."

76
HansA

Wir haben den Windows-Hotfix http://support.Microsoft.com/kb/2754804 getestet und bestätigt, dass er das Problem behoben hat.

14
lyaffe

Das Problem wird durch den Stateful-FTP-Filter der Firewall verursacht. Als Problemumgehung können Sie es deaktivieren, indem Sie netsh advfirewall set global StatefulFTP disable mit Administratorrechten ausführen.

88
Chris

Eine andere Problemumgehung besteht darin, die JVM zu starten:

-Djava.net.preferIPv4Stack=true
15
prunge

Ich habe einen Fehlerbericht an Oracle übermittelt, siehe bugs.Sun.com/bugdatabase/view_bug.do?bug_id=7077696

Sie haben die Priorität als niedrig eingestuft, was mich zu dem Schluss bringt, dass sie das Ausmaß des Problems nicht ganz verstehen, d. H. Dass FTP unter Java/Windows fehlerhaft ist. Ich habe vergessen, dies explizit im Fehlerbericht anzugeben. Wenn jemand anderes der Meinung ist, dass er eine höhere Priorität haben sollte, fügen Sie dem Oracle-Fehlerbericht einen Kommentar hinzu.

Mir ist gerade aufgefallen, dass Sie auch für den Fehler "abstimmen" können. Bitte geben Sie ihm eine Stimme, wenn Sie zustimmen, dass er von Bedeutung ist.

15
HansA

Dieses Problem kann ohne JDK7 demonstriert werden. Die Firewall in Windows 7 blockiert das FTP-Protokoll, wenn die Anwendung IPv6-zugeordnete IPv4-Adressen verwendet. Unter http://bugs.Sun.com/bugdatabase/view_bug.do?bug_id=7077696 finden Sie weitere Informationen und Problemlösungen.

5
Alan

TFTP unter JDK7 unter Windows 7 hat eigentlich dasselbe Problem. Der MS-Hotfix löst das FTP-Problem, funktioniert aber nicht für TFTP. Anscheinend sollte Oracle das gleiche Problem an MS melden und einen weiteren Hotfix erhalten, um das TFTP-Problem ebenfalls zu beheben.

2
Y.Huang

Hier wurde über das Problem berichtet: http://podzemski.com/2011/09/12/Java-7-prevents-ftp-transfers-on-windows-when-firewall-is-on/

Vielleicht wird das Problem dadurch zusätzlich sensibilisiert.

2
Tommie

Derselbe Fehler wurde hier mit einem Testfall gemeldet: Java 7 Socket Exception Bug forum . Ein Problem mit Java 7

1
Dave

Ich hatte das gleiche Problem mit IDE Eclipse Neon, Java 7 und Windows 7 Professional. Versuch, eine PDF Datei auf einen FTP-Server hochzuladen. Ich habe es gelöst, indem ich als Administrator den folgenden Befehl in CMD ausgeführt habe:

C: \ Users \ pc01> netsh advfirewall set global StatefulFTP disable