관리 메뉴

JIE0025

[FTP] 파일전송 프로토콜 (File Transfer Protocol) 본문

Infra/Network

[FTP] 파일전송 프로토콜 (File Transfer Protocol)

Kangjieun11 2025. 2. 27. 00:10
728x90

 

 

✅ FTP란 ? 

File Transfer Protocol의 약자

원격으로 파일전송을 위한 프로토콜이다.  

 

 

 

하나의 호스트에서  다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.

 

20번 포트는 데이터 전송을 위해

21번 포트는 명령의 응답 / 제어정보를 위해 사용된다. 

 

 

FTP는 암호화를 하지 않고,  평문으로 전송하기 때문에  외부에 노출될 위험이 있다.

따라서  다른 프로토콜의 사용을 권장한다. 

SFTP (22/TCP)  Secure File Transfer Protocol  -- SSH 기반으로 데이터 암호화 제공 

FTPS(990/TCP)

 

 

 

 

 

FTP 전송모드

 

전송모드 2가지가 있다. 

(Defalut)   Active Mode   : 능동모드  -- 클라이언트가 요청 

Passive Mode   : 수동모드 --  서버가 요청 

 

 

 

Active Mode

위의 내용을 다시 가져왔다. 

  • 능동모드  -- 클라이언트가 요청 
  • 20번 포트는 데이터 전송을 위해
  • 21번 포트는 명령의 응답 / 제어정보를 위해 사용된다. 

 

 

 

클라이언트가 서버의 21번 포트로 접속후 

명령을 송수신하기위한 제어채널을 생성한다. 

 

사용자가 ls 명령을 입력하면 

1)  클라이언트데이터를 전송할 포트 (1024 이상의 포트, 여기에선 5151) 를 포함해 서버에 알려준다.  

 

2) 서버는 ACK(OK부분)  을 응답한다. 

3) 서버의 20번 포트는   클라이언트가 알려준 5151 포트로 접속한다. 

 

4) 마지막으로 클라이언트는 ACK 응답한다.  

 

Passive Mode

  • 수동모드 --  서버가 요청 
  • 20번 포트는 데이터 전송을 위해
  • 21번 포트는 명령의 응답 / 제어정보를 위해 사용된다. 

 

클라이언트는 서버의 21번 포트로 접속후 제어 채널을 생성한다.

1) 이후 사용자가 명령어 입력시   클라이언트는 Passive Mode 로 연결하기 위해 PASV명령어를 전송한다. 

2) 서버에선 서버가 사용할 포트번호를 알려준다.  (1024 이상  --- 3267)

3) 클라이언트는 서버가 알려준 포트번호로 접속시도한다.   --> 데이터 채널을 생성한다. 

4) 서버는 ACK응답한다   데이터를 송신한후 데이터 채널 연결을 종료한다.  

 

 

* 서버가 포트번호를 알려주기 때문에  해당 대역의 방화벽 포트를 열어둬야한다. 

* 20번 포트를 사용하지 않고, 서버가 지정한 임의의 비특권포트가 사용된다.  

 

 

 

 

 


 

 

비유로  더 쉽게  이해해보자. 

 

 

 

 

 

철수는 오래된 희귀 영화를 소장하고 있다.

이 영화는 요즘 스트리밍 사이트에서도 볼 수 없는 작품이라, 친구 길동이와 영희도 보고 싶어 한다.

 

길동: "철수야, 그 영화 파일 좀 보내줘!"
영희: "이메일로 보내기엔 너무 크지 않아?"

 

철수는 파일 크기가 너무 커서 이메일이나 메신저로 보내기가 어렵다는 걸 깨달았다.

클라우드 저장소에 올릴 수도 있지만, 친구들이 다운로드하는 데 시간이 걸릴 것 같았다.

💡 철수의 해결책: “FTP 서버를 이용해보자!”

 

 


철수 :  FTP 서버를 열다

철수는 자신의 컴퓨터를 FTP 서버로 만들기로 했다.

 

 설정 과정

  1. FTP 서버 설치: 철수는 Windows에서 FileZilla Server 또는 Linux에서 vsftpd를 설치했다.
  2. 계정 생성: 친구들이 접속할 수 있도록 길동이와 영희의 FTP 계정을 만들었다. 
        >> 계정을 만들지 않으면 익명 Anonymous 허용옵션을 켜야하는데, 보안에 취약하다
  3. 폴더 공유 설정: 영화 파일이 있는 폴더를 FTP 공유 폴더로 설정했다.
  4. 네트워크 설정: 외부에서도 접속할 수 있도록 포트(21번) 개방  공인 IP 확인.

철수: "이제 내 컴퓨터가 FTP 서버 역할을 할 수 있다~!"

 

 

길동과 영희 :   FTP로 접속

철수는 친구들에게 FTP 접속 정보를 보냈다.

📌 FTP 접속 정보

  • 서버 주소: ftp://철수의공인IP
  • 포트: 21   (철수가 알려준 정보로 연결했으므로 수동모드  Passive Mode  ) 
  • 계정 정보:
    • 길동: gildong / password123
    • 영희: younghee / password456

길동과 영희는 자신의 컴퓨터에서 FTP 클라이언트(FileZilla, WinSCP 등)를 실행하고, 철수의 FTP 서버에 접속했다.

 

영화 다운로드 성공!

 길동의 FTP 다운로드 과정

  1. FTP 클라이언트 실행
  2. 철수의 FTP 서버에 로그인
  3. 영화 파일이 있는 폴더로 이동
  4. 파일을 다운로드하여 자신의 컴퓨터에 저장

영희도 같은 방식으로 접속하여 영화를 다운로드했다.

 

 


 

 

FTP는 왜 아직도 많이 사용될까? 

 

간편한 사용법과 효율성 때문에

여러개의 파일을 한꺼번에 업로드 / 대용량 파일을 빠르게 전송해야할 때 유용하다. 

 

 

대용량 파일 전송에 적합하기 때문에

클라우드서비스가 나오기 전까지 백업파일은 FTP를 통해 이루어졌는데 

서버에 직접접속해 대용량데이터를 관리할 수 있다는 점이 매우 편리하다. 

 

>> 실시간 API요청은 속도나 성능 부담이 생길 수 있는데 

주기적으로 데이터를 / 대용량 전송해야하는 배치작업의 경우엔 FTP 를 사용할 수 있다는 것이다! 

 

 

 

https://peemangit.tistory.com/66

 

FTP (File Transfer Protocol) 란?

1. FTP (File Transfer Protocol) 란?하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답

peemangit.tistory.com

https://blog.naver.com/jhbd10004/223620854393?trackingCode=rss

 

FTP 뜻 서버 파일 전송의 기본 여전히 강력한 이유

FTP(파일 전송 프로토콜) 뜻에 대해서 알아보고 관련 정보를 드리려고 합니다. FTP는 인터넷의 초기...

blog.naver.com

 

'Infra > Network' 카테고리의 다른 글

포트(Port) 란 무엇이고 왜 있는걸까?  (1) 2024.12.06