■ FTP는 다른 서비스와는 달리 Active Mode와 Passive Mode가 존재한다.

- 웹브라우저들은 일반적으로 Passive Mode로 설정되어 있고, 알FTP나 WS-FTP, CuteFTP와 같은 FTP 클라이언트 프로그램들은 일반적으로 Active Mode가 기본값으로 설정되어 있다.


(1) FTP Active Mode의 동작 방식


- 클라이언트에서 서버의 21번 포트로 접속 후 클라이언트가 사용할 두 번째 포트를 서버에 알려준다.
- 서버는 클라이언트로 서버로 부터 Ack를 보내고, 서버의 20번 포트는 클라이언트가 알려준 두 번째 포트로 접속을 시도한다.

○ Active Mode 의 문제점
: 일반적인 TCP/IP의 특징인 ‘클라이언트가 서버에 접속을 시도하는 것’이 아니라 ‘서버가 클라이언에 접속을 시도한다’는 것이다. 이 때문에 만약 클라이언트 PC등에 방화벽이 설치되어 있거나 FTP를 잘 이해하지 못하는 공유기 등을 사용하여 외부에서의 접속을 허용하지 않는다면 세 번째 프로세스가 작동하지 않게 되어 FTP 접속이 제대로 되지 않는 문제점이 있다. 이러한 경우 FTP 접속은 되지만 이후 데이터 목록을 받아오지 못하여 에러가 발생하게 된다.
 
Active Mode는 클라이언트에서 서버측 21번 포트로 접속시도 하고 데이터 포트는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.


(2)  FTP Passive Mode의 동작 방식


○ Active Mode의 문제점을 해결하기 위한 대한으로 디자인된 Passive Mode

- 클라이언트에서  서버의 21번 포트로 접속을 시도하면, 서버에서는 사용할 두번째 포트를 클라이언트에게 알려준다.
- 클라이언트는 다른 포트를 열어 서버가 알려준 이 포트로 접속을 시도한다. 


○ Passive Mode 의 문제점
: Passive 모드에서는 두 번째 data포트로서 Active 모드가 사용했던 20번을 사용하지 않고 대신 1024 이후의 임의의 비 특권 포트를 사용하게 된다. 따라서 Passive 모드는 서버에서 클라이언트로 연결을 시도하는 Active 모드의 문제점을 해결하기는 했지만, 서버의 비 특권포트(1024 ~ 65535)를 방화벽에서 모두 열어 두어야 한다는 또 다른 문제점이 야기되었다.그러나 wu-ftp나 proftpd등 대부분의 ftp 데몬에서는 클라이언트가 Passive Mode로 접속 시 사용할 수 있는 포트를 제한설정 할 수 있는 기능을 지원하므로 이의 문제점을 미봉책이나마 어느 정도는 해결할 수 있다.

 

Passive 모드는 클라이언트에서 서버쪽 21번 포트로 접속 시도 하고 데이터 포트도 클라이언트에서 서버의 임의의 포트로 접속하여 데이터를 받아오는 방식이다.

 

by Latte 하늘이도우사 2012.06.27 18:28
  • Favicon of http://blog.naver.com/mvgod BlogIcon 위소보 2012.11.13 10:46 신고 ADDR EDIT/DEL REPLY

    안녕하세요 좋은글 감사 드립니다. 두가지 모드의 차이점을 정확하게 알게 되었네요~
    좋은글 퍼갈께요~ 즐프요 ^^

  • Favicon of http://www.i-swear.com BlogIcon 알찬돌삐 2013.01.09 14:00 신고 ADDR EDIT/DEL REPLY

    좋은글 감사합니다.

  • 피카소 2013.03.19 05:27 신고 ADDR EDIT/DEL REPLY

    오홍~ 감사합니다 :)

  • ibluesky 2013.09.25 12:15 신고 ADDR EDIT/DEL REPLY

    passsive에서 마지막 말이 틀렸네요.
    서버의 20번 포트가 아니라 임의 포트로 데이터 통신을 하는거 아닌가요?..

    • Favicon of http://mintnlatte.tistory.com BlogIcon Latte 하늘이도우사 2013.09.25 13:11 신고 EDIT/DEL

      아항.. 감사합닏다!
      내용은 제대로 쓰고, 최종 정리하는 부분에서 착오가 있었네요..
      수정하였습니다^^

  • Favicon of http://blog.naver.com/hyunmui BlogIcon 현무이 2014.03.13 21:03 신고 ADDR EDIT/DEL REPLY

    감사합니다~ FTP 정리안되던 부분이 확 정리되었네요!

  • BlogIcon ftp pa 2014.04.14 23:27 신고 ADDR EDIT/DEL REPLY

    ftp pass

  • 카렌 2014.06.30 05:03 신고 ADDR EDIT/DEL REPLY

    ftp에 대하여 확실하게 알았습니다. 감사드립니다.

  • heaye 2014.12.04 11:34 신고 ADDR EDIT/DEL REPLY

    와우.!!!
    덕분에 완벽하게 이해했습니다.~~~~!!!!!!

  • BlogIcon 김성훈 2015.05.22 09:57 신고 ADDR EDIT/DEL REPLY

    정말 좋은 글입니다 ㅎㅎ

  • codekit 2015.06.02 23:49 신고 ADDR EDIT/DEL REPLY

    예전에 배운개념인데, 너무 대충넘어가서 그런지 헷갈려서 이제서야 제대로 개념 파악하고 가네요.
    좋은 포스팅 감사합니당 ~ ^^

  • Favicon of http://blog.naver.com/jsg49 BlogIcon jsg49 2015.12.06 21:51 신고 ADDR EDIT/DEL REPLY

    ftp 맨날 긴가민가 했는데... 확실하게 이해됫습니다. 퍼갈게요~

  • Favicon of http://hyunki1019.tistory.com BlogIcon Louis.Kim 2016.03.14 16:04 신고 ADDR EDIT/DEL REPLY

    감사합니다. 좋은정보 가져 가겠습니다.
    문제시 되면 말씀하시는데로 자삭 하겠습니다.

  • 대박 2016.10.18 15:34 신고 ADDR EDIT/DEL REPLY

    정리 정말 잘하셨네요!
    드디어 이해 됐어요~
    근데 다들 어케 퍼가신거지ㅎㅎ

  • 근데? 2017.01.12 11:47 신고 ADDR EDIT/DEL REPLY

    패시브 모드로 사용할때 서버가 공유기 안쪽에 있고 포트포워딩으로 21번을 해줬는데 패시브 모드니 패시브포트도 포트포워딩을 등록을 해줘야하지만 전 해주지 않았는데도 접속해서 전송을 하는데 아무런 문제가 없는것은 어떠한 경우인가요? 전 DMZ을 설정하지도 않았습니다.

  • Favicon of http://woouman.tistory.com BlogIcon Wooum@n 2017.03.08 02:11 신고 ADDR EDIT/DEL REPLY

    공감수 오지네요.. ㄷㄷ
    역시 설명 깔끔하죵ㅇ

  • 2017.08.08 15:32 ADDR EDIT/DEL REPLY

    비밀댓글입니다