Aptana & Eclipse(이클립스)에서 FTP로 파일을 열려고 하면 "Opening file for read failed"라는 메세지가 뜨면서 에러가 나는 경우가 있습니다. 이 경우 혹시 Java 버전을 1.7.0 로 업그레이드 하지 않았는지 생각해 보시기 바랍니다. 업그레이드 후 에러가 나기 시작했다면 윈도우 방화벽이 Java 를 활용하는 Aptana의 연결을 막았기 때문입니다.
이 방화벽 문제를 해결하기 위해서는 실행 명령창에 아래 명령어만 입력하시면 됩니다.
netsh advfirewall set global StatefulFtp disable
참고사항
위의 명령어는 윈도우7 64비트 환경에서는 정확하게 작동합니다.
위의 에러는 Java가 FTP 연결하는 과정에서 IPv4 주소를 IPv6 주소로 매칭하면서 윈도우 방화벽이 해당 연결을 잘못 차단하며 생기는 일이었습니다.
위 예제는 가장 일반적인 TCP 포트 인바운트 허용 규칙을 추가하는 것이었고, 좀 더 상세한 작업을 원하신다면 도움말 참고해서 작업하시면 되겠습니다.
윈도우 2008 이상에서는 아래 명령어를 입력해보세요.
netsh advfirewall firewall add rule
아래는 도움말에 나오는 예제입니다.
messenger.exe에 대해 캡슐화 보안이 적용되지 않은 인바운드 규칙을 추가합니다. netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow
포트 80에 대한 아웃바운드 규칙을 추가합니다. netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out localport=80 action=block
TCP 포트 80 트래픽에 대해 보안 및 암호화를 요구하는 인바운드 규칙을 추가합니다. netsh advfirewall firewall add rule name="Require Encryption for Inbound TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow
messenger.exe에 대해 인바운드 규칙을 추가하고 보안을 요청합니다. netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:\program files\messenger\msmsgs.exe" security=authenticate action= allow
SDDL 문자열로 식별된 그룹 acmedomain\nscanners에 대해 인증된 방화벽 통과 규칙을 추가합니다. netsh advfirewall firewall add rule name="allow scanners" dir=in rmtcomputergrp=<SDDL 문자열> action=bypass security=authenticate
UDP 연결에 사용되는 로컬 포트 5000-5010에 대해 아웃바운드 허용 규칙을 추가합니다. Add rule name="Allow port range" dir=out protocol=udp localport=5000-5010 action=allow
윈도우 2003 에서는 아래 명령어를 입력해보세요.
netsh firewall add portopening
아래는 도움말에 나오는 예제입니다.
add portopening TCP 80 MyWebPort add portopening UDP 500 IKE ENABLE ALL add portopening ALL 53 DNS ENABLE CUSTOM 157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet add portopening protocol = TCP port = 80 name = MyWebPort add portopening protocol = UDP port = 500 name = IKE mode = ENABLE scope = ALL add portopening protocol = ALL port = 53 name = DNS mode = ENABLE scope = CUSTOM addresses = 157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet