본문으로 바로가기
728x90
반응형

오늘은 ftp를 사용하던 도중 발생했던 에러에 대해 알아보겠습니다.

저는 A장비에서 자바 ftp client 프로그램을 만들어 실행하였습니다.

B장비에는 vsftpd를 사용하여 ftp server를 실행하였습니다.

A장비에 데이터를 생성하여 B장비로 보내는 테스트를 하였습니다.

둘간의 전송은 ftps를 사용하여 암호화 하였습니다.

 

에러가 발생하지 않을 때, 전송은 성공하였습니다.


데이터를 보내는 중간에 아래와 같은 에러가 자주발생하였습니다.

 

재전송 로직이 있기 때문에 데이터 전송하는데 성공하였지만, 위의 에러로 인하여 속도에 문제가 있었습니다.

구글링을 하면서 소스를 수정하였지만, 소스문제는 아니었습니다.

큰 성과를 얻기는 힘들었습니다.

많은 삽질을 하던 중, vsftpd의 컨피그 파일을 수정하여 문제 해결에 성공하였습니다.

 

아래는 저의 vsftpd.conf 파일의 몇몇 값들만 추려보았습니다.

 

============================================================

 

listen_ipv6=YES

listen_port=

 

pasv_enable=YES

pasv_min_port=XXX

pasv_max_port=XXX

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

 

rsa_cert_file=/etc/vsftpd/vsftpd.pem

 

rsa_private_key_file=/etc/vsftpd/vsftpd.pem

 

ssl_enable=YES

force_local_data_ssl=NO

force_local_logins_ssl=YES

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

 

require_ssl_reuse=NO

ssl_ciphers=HIGH

file_open_mode=0777

 

============================================================

 

바로 문제가되었던 설정값은 

force_local_data_ssl 입니다.

위의  옵션은 ssl_enable이 활성화 되었을 때만 적용되며, 만약 이 옵션이 활성화 되어 있다면 모든 비익명 로그인은 데이터 연결 상태에서 데이터를 주고 받기 위해 보안 SSL 연결을 사용하도록 강제적으로 설정됩니다. (기본값 = YES)

force_local_data_ssl=YES로 설정을 변경하니 위의 에러가 뜨지 않았습니다.

만약 저와 같은 에러가 상황을 겪게되시면, 위의 값을 변경해보시기 바랍니다.

오늘의 포스팅은 여기까지입니다.

감사합니다.

728x90
반응형