본문 바로가기
IT

[기타] FTP passive/active 모드

by urosie 2017. 4. 11.

FTP 쪽에 오류가 있어서 이것저것 검색하다가

FTP에 passive/active 모드가 있다는 걸 알게되었다.

 

기존에 FTP하면 기본 포트인 21번, 데이터 포트는 20번 이라고 알고 있었는데~

각 모드에 따라 동작방식이 다른다는 거다!!

 

FTP 개발을 하게 된다면 필수로 알고 있어야 할 듯 하다.

 

일반적으로는 웹을 통해 접속하게 되면 Passive 모드로 접속되고 FTP 접속 프로그램을 통하면 Active 모드라고 알고있다.

 

FTP 접속할 때 21번 포트(기본)를 통해서 사용하게 되는데

클라이언트가 서버에 21번 포트로 접속한 후에 Active와 Passive 모드 동작이 다르다.

 

1. Active 모드

Active 모드는 클라이언트가 FTP 서버에 기본값인 21번 포트를 사용하여 접속
-> 클라이언트가 데이터로 받겠다는 응답을 서버에게 보내면서
    데이터를 전송할 포트를 알려줌.
-> 서버는 자신의 20번 포트로 클라이언트가 알려준 데이터 포트로 데이터를 보냄

 

 

여기서 중요한 점 !

 서버가 클라이언트의 해당 포트에 접속해 데이터를 보내준다는 것!

보통의 통신의 경우 클라이언트가 서버에 접속하는 형태인데 말이징~

 

그래서 클라이언트에서는 방화벽에 해당 포트를 열어서 사용하거나 NAT 환경에 있는 네트워크라면 포트포워딩을 해줘야 한다.

 

외부에서 접속을 허용하지 않는다면 문제가 발생할 것이다.

클라이언트쪽에서 사용하는 포트를 별도로 설정할수 있다면 문제는 없겠지만~. 

 

모든 유저들이 FTP에 대한 지식이 있는 것은 아니니... 이 모드를 개선한 것이 Passive Mode이다.

 

 

2. Passive 모드

Passive 모드는 클라이언트가 FTP 서버에 기본값인 21번 포트를 사용하여 접속

-> 서버는 서버가 사용할 데이터 포트를 클라이언트에 알려줌

-> 클아이언트의 데이터 포트는 1024번 이상의 사용하지 않는 포트를 사용

-> 클라이언트가 임의의 포트 골라서 명령 포트로 사용하고 +1한 다음에 데이터 포트로 사용

 

Activce Mode 에서 있었던 문제점이 여기서 사라진다~

클라이언트가 서버측의 데이터 포트를 사용하기 때문에 당연하게 클라이언트의 방화벽이나 네트워크 구조에 신경을 쓸 필요가 없는 것!

 

 

 

참고사이트 : http://hoyatic.tistory.com/165

댓글