인터넷 공유기로 구성된 네트워크안에 FTP서버가 있고,
공유기의 포트포워딩을 통해서 FTP서버에 접근하도록 세팅이 되어있습니다.
그런데 회사분이 패시브모드로 접속이 안된다며 FTP의 passive 모드 세팅 좀 해달라더군요.
결론부터 말씀드리자면 패시브모드로는 접속을 할 수가 없습니다.

FTP에서 passive모드란 서버의 설정이 아닌 순수클라이언트의 설정입니다.

FTP는 21번 포트를 사용한다고 다들 알고 있을것입니다.
하지만 FTP는 실제 2개의 포트를 사용합니다.

사용자 로그인과 같은 통신을 위해서는 21번 포트를,
그리고 실제 데이터전송을 위해서 20번 포트를...

Active Mode에서는 위와같이 데이터 전송을 위해서 20번 포트가 사용됩니다.
Passive Mode에서는 데이터전송을 위해서 가변적으로 포트가 사용됩니다.
클라이언트가 속한 네트워크의 방화벽이나 기타 등등의 이유에서 20번포트가 막혀 데이터통신이 안될때, 패시브모드를 이용하면 데이터전송이 가능한 경우가 많이 있죠...

서버-클라이언트 통신을 할 때,
서버의 서비스포트는 21번(FTP),22번(SSH), 23번(TELNET),25(SMTP)등 정해져 있죠.
하나의 IP를 가진 서버에서 다른 포트를 통해 우리는 다른 어플리케이션에 접근을 하게 됩니다.

SERVER( 127.0.0.1:21 )  ---- CLIENT( 211.47.92.5:1453 )
SERVER( 127.0.0.1:22 )  ---- CLIENT( 211.47.92.5:1701 )
SERVER( 127.0.0.1:23 )  ---- CLIENT( 211.47.92.5:1392 )
SERVER( 127.0.0.1:25 )  ---- CLIENT( 211.47.92.5:1234 )

하지만 클라이언트의 경우 서버가 클라이언트 아이피만 알면 통신이 가능하기 때문에
클라인트 포트에 1453,1701등 사용하고 있지 않은 포트의 값중 아무거나 넣어주게 됩니다.

패시브모드는 FTP통신에서 데이터를 받을 때, 20번포트가 아닌 임의의 가변적인 포트를 통해서 받겠다는 것입니다.

Posted by 백구씨쥔장
,