Java 7은 방화벽이 켜져있는 경우 Windows Vista 및 7에서 FTP 전송을 차단합니다. 어떤 아이디어?
Java 7은 Windows Vista 및 7에서 FTP 전송을 방지합니다.
FTP에서는 파일을 전송하기 전에 PORT 또는 PASV 명령을 전송해야합니다. 명령 중 하나가 전송되는 즉시 Windows 방화벽은 해당 명령을 보낸 소켓을 닫습니다. 이것은 방화벽이 켜져 있고 java.exe에 대한 예외가없는 경우에만 발생합니다. 이 문제는 새로운 Vista IP 스택을 사용하는 Java 7과 관련이 있다고 생각합니다.
누구 든지이 문제를 해결하거나 해결하는 방법에 대한 아이디어가 있습니까? 우리는 자바 FTP 라이브러리를 배포하고 있으므로 분명히 예외를 직접 추가 할 수 없습니다.
예외:
java.net.SocketException: Permission denied: recv failed
JRE 버전 정보 :
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)
후속 조치 1 (2011 년 11 월 14 일) : Oracle은 문제를 분석 한 결과 Windows 방화벽 및 / 또는 IPv6 스택의 버그 인 것으로 확인되었습니다. 그들은 네이티브 C (즉, 자바가 아닌) 앱으로 문제를 복제 할 수 있었기 때문에 버그가 자바에 없다는 강력한 증거입니다. 그들은 Microsoft에 알렸으므로 이제 공은 법원에 있습니다. 자세한 내용은 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696 에서 찾을 수 있습니다.
후속 조치 2 (2012 년 7 월 27 일) : Oracle의 (매우 도움이되는) 담당자가 문제가 현재 Microsoft에서 에스컬레이션되었다고 말했습니다. 곧 몇 가지 결과를 기대하고 있습니다.
FOLLOW-UP 3 (2012 년 8 월 15 일) : Oracle 담당자는 Microsoft가 버그를 수락했으며 우선 순위를 정하는 중이라고 말했습니다.
후속 조치 4 (2012 년 9 월 21 일) : Microsoft는 현재 Oracle에서 테스트중인 패치를 제작했습니다. 출시일에 대한 단어가 없습니다.
후속 조치 5 (2012 년 10 월 11 일) : 마침내 성공했습니다! Microsoft는 핫픽스 를 공개적으로 출시했습니다 . 이는 향후 일반 소프트웨어 업데이트에 픽스가 포함될 것임을 의미합니다.
"이 문제의 영향이 심각하지 않으면이 핫픽스가 포함 된 다음 소프트웨어 업데이트가 나올 때까지 기다리는 것이 좋습니다."
Windows 핫픽스 http://support.microsoft.com/kb/2754804를 테스트하여 문제가 해결되었는지 확인했습니다.
이 문제는 방화벽의 상태 저장 FTP 필터로 인해 발생합니다. 해결 방법 netsh advfirewall set global StatefulFTP disable
으로 관리자 권한 으로 실행 하여 비활성화 할 수 있습니다 .
Oracle에 버그 보고서를 제출했습니다. bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696을 참조하십시오 .
그들은 우선 순위를 낮게 표시했기 때문에 문제의 규모를 잘 이해하지 못한다고 생각합니다. 즉, Java / Windows에서 FTP가 손상되었습니다. 버그 보고서에 명시 적으로 언급하는 것을 잊었습니다. 다른 사람이 더 높은 우선 순위를 가져야한다고 생각하는 경우 Oracle 버그 보고서에 의견을 추가하십시오.
버그에 대해 '투표'할 수도 있다는 것을 방금 알았으므로 중요하다고 동의하면 투표 해주세요.
또 다른 해결 방법은 다음을 사용하여 JVM을 시작하는 것입니다.
-Djava.net.preferIPv4Stack=true
이 문제는 JDK7없이 입증 될 수 있습니다. 응용 프로그램이 IPv6 매핑 된 IPv4 주소를 사용할 때 Windows 7의 방화벽이 ftp 프로토콜을 차단하는 것입니다. 자세한 내용과 해결 방법 은 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696 을 참조하십시오.
문제에 대한 블로그 : http://podzemski.com/2011/09/12/java-7-prevents-ftp-transfers-on-windows-when-firewall-is-on/
아마도 문제에 대한 추가 인식을 유발할 수 있습니다.
실제로 Windows 7의 JDK7에서 TFTP에도 동일한 문제가 있으며 MS 핫픽스는 FTP 문제를 해결하지만 TFTP에서는 여전히 작동하지 않습니다. Oracle은 동일한 문제를 MS에보고하고 TFTP 문제를 해결하기 위해 또 다른 핫픽스를 받아야합니다.
테스트 케이스와 함께 동일한 버그가 여기에보고되었습니다 : Java 7 Socket Exception Bug forum. Java 7의 문제
IDE Eclipse Neon, JAVA 7 및 Windows 7 Professional을 사용하여 동일한 문제가 발생했습니다. PDF 파일을 FTP 서버에 업로드하려고합니다. CMD에서 관리자로 다음 명령을 실행하여 해결했습니다.
C: \ Users \ pc01> netsh advfirewall set global StatefulFTP disable
'Nice programing' 카테고리의 다른 글
[L 배열 표기법-어디에서 왔습니까? (0) | 2020.10.16 |
---|---|
Django에서 manage.py를 사용하여 CLI에서 데이터베이스를 지우는 가장 쉬운 방법은 무엇입니까? (0) | 2020.10.16 |
Facebook 로그인에 대해 앱이 잘못 구성됨 : Android Facebook 통합 문제 (0) | 2020.10.16 |
ASP.NET C #에서 이메일을 보내는 방법 (0) | 2020.10.16 |
composer create-project를 사용하여 특정 laravel 버전 설치 (0) | 2020.10.16 |