본문 바로가기

Programming/Linux

[FTP] FTP 부가설명



FTP는 두개의 Port를 사용한다. Information Port(Default=21), Data Port(Default=20).

FTP에는 두가지 접속 모드가 있다. Active ModePassive Mode

Explorer를 통한 FTP 접속은 Passive Mode 방식이다.


Active Mode : Client에서 Server의 지정 Port로 접속 후 Client가 사용할 두번째 Port를 서버에 알려준다. 

Server는 ack로 응답한다.

Server의 Data Port는 Client가 알려준 두번째 Port로 접속을 시도한다.

Client는 ack로 응답한다.


Server의 Data Port는 Client가 알려준 두번째 Port로 접속을 시도하게 되는데 만약 Client에 방화벽이 설정되어 있거나 공유기 등을 사용하여 외부에서의 접속을 허용하지 않으면 작동하지 않게된다.

결국 접속은 되지만 data 목록을 불러오지 못하는 문제가 발생할 수도 있다.



Client 기반 접속이다. Client에 선점되지 않은(1024 이상) Random Port에서 21(Default)로 접속한다.

Active 모드 접속시 문제점이 발생되는 경우는 대부분 Client측에 있다.

Server의 Data Port로 실제 연결을 생성하지 않고 서버에게 자신이 Listening하는 Port를 알려 준 후

Server가 해당 Port로의 연결을 맺는다.

만약 자신의 공유기나 마스커레이드를 통해 FTP Server로 접속을 시도할때 접속 실패의 대부분은

Server가 Client쪽으로 접속을 할 때 Private IP를 찾지 못해서 실패하는 경우이다.



Passive Mode : Active의 위같은 문제를 해결하기 위한 대안으로 디자인 되었다.

Client는 Server의 연결 Port로 접속을 시도한다. Server에서 사용 할 Port를 알려준다.

Client에서는 다른 Port를 열어 Server가 알려준 Port로 접속을 시도한다.


Active에서 사용하던 Data Port인 20번 Port를 사용하지 않고 임의의 비 특권 Port를 사용한다.

Server의 해당 Port(지정가능)을 방화벽에서 모두 열어야 한다.



Client가 Server로 접속 시 Client의 Random Port가 아니라 Server쪽의 Random Port를 통해 접속한다.

Server는 Client에게 pasv명령어를 보내고 Client는 이를 승인하여 연결을 하게 된다.

Server는 1024~ 65535 Port 사이를 Random 하게 할당하여 연결 요청마다 신규 Port를 사용한다.

Server쪽에서 방화벽을 운영하거나 대량 접속 서비스가 운영중일 때 네트워크 자원이 문제가 된다.





참조 : http://lol.blople.com/107

http://besma.tistory.com/entry/FTP-ActivePassive-%EB%AA%A8%EB%93%9C%EB%9E%80-%EB%A6%AC%EB%88%85%EC%8A%A4-vsftp-ActivePassive-%EB%AA%A8%EB%93%9C-%EC%84%A4%EC%A0%95

'Programming > Linux' 카테고리의 다른 글

[Ubuntu] Grub2 복구  (0) 2012.07.17
[Mount] ntfs usb Mount  (0) 2012.07.02
[FTP] vsftpd source Install - 한글패치  (0) 2012.06.28
[FTP] vsftp 설정 - yum install 기준  (0) 2012.06.23
[Setup] Multi Operating System #4  (0) 2012.06.18