IT Technology/Network

FTP 액티브(Active) 패시브(Passive) 차이

by빵수 2023. 4. 12. 11:21
728x90
반응형

FTP 액티브(Active) 패시브(Passive) 차이에 대해서 알아보자.

 

FTP 서버를 구축하려고 보면 패시브에 대한 설정과 포트 옵션이 보인다.

그리고 FTP 클라이언트를 사용하려고 보면 역시 패시브 모드라는 것이 있고 체크박스로 체크하게 되어 있다.

그렇다면 FTP 액티브(Active)와 패시브(Passive) 차이는 어떠한지 알아보자.

 

 

FTP 액티브 모드(Acitve mode)

 

액티브 모드 설명

 

  1. 클라이언트가 FTP 프로그램으로 서버에 접속한다. [이때 FTP 서버는 기본값인 21 포트 사용.]
  2. 클라이언트는 5151번 포트로 데이터를 받는다는 응답을 서버에 보낸다. [이때 FTP 서버에 접속하는 클라이언트의 포트는 5150]
  3. 서버는 5151번 포트로 데이터를 전송한다고 응답.
  4. 클라이언트가 응답하고 데이터를 받는다.

 

 

해설

  • 서버와 클라이언트의 통신을 풀어보면 중요한 점은 서버가 클라이언트의 해당 포트에 접속해 데이터를 보내준다는 것이다.
  • 흔히 알고있는 상식과는 좀 다르다.
  • 보통 클라이언트가 서버에 접속해서 사용하는데 서버가 클라이언트에 접속한다니?
  • 이런 구조 때문에 클라이언트에서는 방화벽에 해당포트를 열어서 사용하거나 NAT 환경에 있는 네트워크라면 포트포워딩을 해줘야 하는 결과가 발생한다.
  • 클라이언트 쪽에서 사용하는 포트를 별도로 설정할 수 있다면 문제가 없지만 일반적으로 사용자들이 FTP를 사용하면서 클라이언트 단에서 사용할 포트를 지정해서 사용하지 않기 때문에 사용하는 포트 범위에 또한 랜덤 해서 초보자들이 직접 FTP 서버를 구축하고 클라이언트로 연결하려 했을 때 문제점을 눈치채기 어렵다.
  • 상용서비스(ex 웹호스팅)을 사용할 때 액티브 모드로 접속하게 되면 모든 유저가 FTP에 대한 지식을 알고 있는 것이 아니므로 접속에 차질이 생기게 된다.

 

 

 

FTP 패시브 모드(Passive mode)

 

서버가 클라이언트를 접속하는 구조를 개선한 것이 패시드 모드이다.

 

 

 

패시브 모드 설명

 

  1. 클라이언트가 서버에 접속
  2. 서버에서 데이터 전송을 위한 포트를 클라이언트에게 알려줌
  3. 클라이언트는 데이터 전송을 위한 포트에 데이터 요청
  4. 서버의 응답과 함께 클라이언트는 서버측의 포트로 데이터를 넘겨받는다.

 

해설

  • 액티브 모드의 개선판이 패시브 모드로 클라이언트는 서버 측에서 알려준 데이터 포트를 통해 서버에서 데이터를 내려받는다.
  • 이때 클라이언트는 서버 측의 데이터 포트를 사용하기 때문에 당연하게 클라이언트의 방화벽이나 네트워크 구조에 신경 쓸 필요가 없다.
  • 이처럼 실제적으로 FTP 서버가 21번 포트를 사용하더라도 이 21번 포트는 명령어를 위한 포트일 뿐 실제적인 데이터 전송은 다른 포트에서 이뤄지고 있다.
  • 서버 측에서 20번 포트를 통해 클라이언트에 접속하냐, 서버측에서 알려준 데이터포트를 통해 클라이언트에서 접속하냐에 따라 액티브 모드와 패시브 모드의 차이가 발생된다.
반응형