참고 주소 :
https://github.com/lahuman/docker-pure-ftpd
https://github.com/stilliard/docker-pure-ftpd/issues/5
FTP 서버 구축
우선 해당 git에서 파일을 가지고 옵니다.
git clone https://github.com/lahuman/docker-pure-ftpd.git
docker를 이용한 빌드를 진행합니다.
docker build -rm -t pure-ftpd .
- Dockerfile에서 Passvie Mode에 대한 설정되지 않으면, 추후 서버에서 수정을 하여도 재대로 반영이 되지 않습니다.
이것 때문에 하루 종일 삽질하였습니다.
FTP 서버를 실행 합니다.
docker run -d -it -p 30000-30009:30000-30009 -p 21:21 -p 20:20 -v /n001/ftp_data:/home --name ftpd_server pure-ftpd
- Dockerfile에서 30000 ~ 30009 포트를 passvie 모드로 열어 두었기 때문에 해당 포트를 추가로 오픈 하는 것이고, 20번 포트는 active모드일 경우 데이터를 주고 받을 때 사용 하기 때문에 함께 열어 줍니다.
- -v 로는 파일 업로드할 위치를 잡아 주면 됩니다. 예제에서는 /n001/ftp_data 로 연결 하였습니다.
사용자 추가
테스트
- 다른 PC 에서 다음과 같이 진행 합니다.
ftp SERVER_IP
추가 : Active Mode 와 Passive Mode
- Active Mode
- 명령어와 데이터 전송을 특정 포트를 이용하셔 전송 됩니다.
- Passvie Mode
- 데이터 전송을 다른 포트를 이용하셔 전송 됩니다.
- 명령어 21
- 데이터 1501 ~ 2345 또는 사용자 지정 범위
NAT(방화벽) 설정시 Active모드는 데이터 전송이 막힐수 있으나, Passive 모드는 가능할 수 있습니다.
MD FILE :
FTP_SERVER.md