본문 바로가기
Back-end/Python

[Pyftpdlib] FTP 서버 만들기 (1) - 설치 및 실행

by 허도치 2020. 2. 12.
0. 서론

 필자는 윈도우 게이밍 노트북과 맥북을 사용하고 있다. 게이밍 노트북은 성능이 나름 좋은편이지만 너무 무거워서 들고 다니기가 힘들다. 그래서, 외부에서 코딩을 할 때는 주로 집에 두고 DB나 FTP 서버용으로 사용하고 있다.

 FTP 서버는 FileZilla Server를 사용하고 있는데, 윈도우랑 맥에서 똑같은 소스를 테스트할 목적으로 서버를 설치하였다. 그러나, 지금은 왼도우 노트북에서 영화를 다운받아두고 외부에서 볼 때 유용하게 사용하고 있다. 그러다 문뜩 윈도우를 재부팅하는데 FileZillar서버가 자동으로 실행되는 모습을 보면서 굳이 FileZilla를 사용해야할까?라는 의문이 생겼다.

 그래서 FTP 서버를 직접 만들어 보기로 하였다.

 

 

1. 설치 및 실행
1-1. 라이브러리 설치

# 작성일 기준: pyftpdlib==1.5.5
$ python install pyftpdlib

 

1-2. 실행

# 실행 경로를 공유 폴더로 설정.
$ python -m pyftpdlib -i localhost -p 9021 -d .

 

# 실행 옵션

1) -i ADDRESS, --interface=ADDRESS
   : FTP 서버 주소 설정 (default: 0.0.0.0)

2) -p PORT, --port=PORT
   : FTP 서버의 포트 설정. (default: 2121)

3) -w --write
   : Write 권한을 '유저'에게 부여. (default: read-only)

4) -d FOLDER, --directory=FOLDER
   : 공유 디렉토리 설정. (default: 실행 경로)

5) -n ADDRESS, --nat-address=ADDRESS
   : NAT 주소 설정

6) -r FROM-TO, --range=FROM-TO
   : TCP 포트 범위 설정. (예: -r 60000-65535)

7) -D, --debug
   : 디버그 모드로 실행

8) -V, --verbose
   : 좀 더 상세한 로그 출력

9) -u USERNAME, --username=USERNAME
   : 접속 권한을 부여할 유저명

10) -P PASSWORD, --password=PASSWORD
   : 유저의 패스워드.

# 실행 옵션은 [ python -m pyftpdlib --help ]를 통해 확인할 수 있음.

 

1-3. 실행 결과

- 웹브라우저에서 [ ftp://127.0.0.1:9021 ] 또는 [ ftp://localhost:9021 ] 로 접속.
- FileZilla와 같은 FTP Client를 통해서도 접속 가능.

 

[Chrome 브라우저에서 FTP 서버에 접속]

- 공유 폴더의 파일들을 확인할 수 있으며, 파일을 클릭하면 다운로드 받을 수 있음.

 

 

마치며

- 이번 포스트에서는 간단하게 pyftpdlib 라이브러리를 설치하여 커맨드로 간단하게 실행해보았다.
- 커맨드로 실행하면 빠르고 간편하게 실행할 수 있지만 여러 유저를 등록하여 사용하거나 서버의 세부 옵션들을 설정할 수 없다.
- 그래서 다음 포스트에서는 FTP서버를 설정하여 실행하는 방법에 대해서 알아보도록 하겠다.

댓글