최종 수정 : 2018-06-26
#포트 변경
포트만 기입하거나 192.168.0.57,2121 바인드할 아이피와 포트
혹은 *,2121 혹은 2121 로 기입합니다.
root@AOL-Debian:~# nano /etc/pure-ftpd/conf/Bind
2121
root@AOL-Debian:~# service pure-ftpd restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -8 utf8 -J ALL:!aNULL:!SSLv3 -u 0 -b -E -A -O clf:/var/log/pure-ftpd/transfer.log -9 utf8 -H -U 000:000 -p 49152:65534 -S 2121 -B
안녕하세요. 이번에는 FTP 서버를 설정하고 사용하는 방법에 대해서 알아보도록 하겠습니다.
기본적으로 FTP 서버의 정보는 아래와 같습니다.
데몬정보 : pure-ftpd
포트 : 21
패시브포트 : 49152 ~ 65534
언어셋 : utf8
인증방식 : 가상계정 (pure-db 이용)
파일질라 , WinSCP , 윈도우 탐색기 , 안드로이드의 ES 파일 탐색기 , 아이폰의 N플레이어 등등 호환이 가능합니다.
아래의 순서대로 진행 하도록 하겠습니다.
1. 접속방법
2. 서버 및 계정 설정방법
3. 포트포워딩 방법
그럼 시작하겠습니다.
1. FTP 서버 접근하기
(이 글을 작성할 때 원격지에서 작성을 하여 아이피가 iptime.org 도메인으로 되어 있는점 양해 부탁드립니다.)
접속 아이피 : U5PVR 아이피 주소
포트 : 21
아이디 : admin
비밀번호 : androidoverlinux
u5pvr 은 기본적으로 생성되어 있는 계정으로 추후 설정시 제거하셔야 합니다!
윈도우 탐색기의 경우 ftp://U5PVR아이피주소:21/ 을 탐색기 주소에 입력하시고 아이디 비밀번호를 입력하시면 아래와 같이 접근이 됩니다.
저의 경우에는 sda 로 SATA 2.5인치 하드디스크, sdb 로 USB 메모리가 장착되어 있는 상태입니다.
내장 SD카드도 정상적으로 접근이 됩니다.
다음으로 Filezilla 프로그램으로 접근을 해 보겠습니다.
빠른연결에서 호스트에 U5PVR 아이피주로를 입력하시고 사용자명에 u5pvr 그리고 비밀번호도 u5pvr 로 입력하고 포트는 21 을 넣으시면 정상적으로 접근이 됩니다.
(원격지에서 글을 작성중이라 사진에는 2211로 되어 있습니다.)
상세하게 보도록 하겠습니다.
다음은 크롬 브라우저를 통해서 접근을 해 본 사진입니다. 파일 업로드는 할 수 없지만 다운로드는 가능하게 되어 있습니다.
WinSCP 를 통해서 접근하여 보겠습니다.
(기본적으로 SSH 가 작동중이기 때문에 SFTP 로도 접근이 가능합니다.)
마지막으로 ES 파일탐색기에서 접근해 본 사진입니다.
2. FTP 서버 설정하기
먼저 패시브포트 범위를 바꾸는 방법에 대해서 알아보겠습니다.
기본적으로는 49152 ~ 65534 로 FTP 서버 기본 값으로 설정이 되어 있습니다.
아래처럼 설정을 해 주시고 재시작 하시면 설정이 적용됩니다.
root@u5pvr-debian:~# nano /etc/pure-ftpd/conf/PassivePortRange
49152 65534
# 요기서 범위를 수정해 주시면 됩니다.
root@u5pvr-debian:~# service pure-ftpd restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -8 utf8 -J ALL:!aNULL:!SSLv3 -u 0 -b -E -A -O clf:/var/log/pure-ftpd/transfer.log -9 utf8 -H -U 000:000 -p 49152:65534 -B
root@u5pvr-debian:~#
다음은 계정 설정을 해 보겠습니다.
root@u5pvr-debian:~# pure-pw list
# 현재 설정된 계정 리스트 보기
u5pvr /mnt/./
djj9405 /mnt/./
root@u5pvr-debian:~# pure-pw userdel u5pvr
# u5pvr 계정 삭제
root@u5pvr-debian:~# pure-pw list
djj9405 /mnt/./
root@u5pvr-debian:~# pure-pw userdel djj9405
# djj9405 계정 삭제
root@u5pvr-debian:~# pure-pw list
# 설정된 계정이 없음으로 리스트에 뜨지 않음
root@u5pvr-debian:~# pure-pw useradd djj9405 -u 1023 -g 1023 -d /mnt -m
# djj9405 계정 추가
# pure-pw useradd <추가할아이디> -u <유저지정> -g <그룹지정> -d <홈폴더 지정> -m (db에 바로 업그레이드 하는 옵션)
Password:
Enter it again:
# djj9405 계정에 사용할 비밀번호를 두번 입력합니다.
root@u5pvr-debian:~# pure-pw list
djj9405 /mnt/./
# 생성한 계정이 보입니다.
root@u5pvr-debian:~# pure-pw mkdb
# 혹시 모르니 db 를 갱신해 줍니다.
계정을 생성할 경우 U5PVR 리눅스는 안드로이드 커널을 공유하기 때문에 사용자는 1023 그룹은 1023 로 꼭 설정하셔야 권한 문제가 발생하지 않습니다.
명령어 끝에 -m 을 넣는 이유는 바로 db 에 반영을 하기 위함입니다. -m 을 넣지 않고 작업하시면 db 에 반영이 되지 않기 때문에 삭제한 계정으로도 접속이 가능해지는 경우가 있습니다. pure-pw mkdb 를 통해 db를 업데이트 하시면 바로 반영이 됩니다.
홈폴더의 경우 /mnt 로 하시면 안드로이드에서 바라보는 /mnt 와 동일한 위치입니다. 즉, 내장 SD카드와 USB나 SATA 포트로 연결된 디스크가 모두 보이는 위치입니다.
여타 계정 설정으로 속도 제한이나 접근 허용 아이피 등등을 설정할 수 있습니다.
추가적으로 홈폴더 관련하여 가상 디렉터리를 사용할 수 있습니다. 예를 들어서 보여주고 싶은 것만 공유하고 싶다면 빈 폴더를 하나 생성하여 그 폴더를 홈폴더로 지정하고 그 폴더에 심링크로 폴더를 추가하는 것입니다.
예시로 mk802 라는 계정에 홈폴더를 /home/mk802 로 설정하고 /home/mk802 폴더에 /mnt/sda/sda1 을 심링크 걸어 보도록 하겠습니다.
root@u5pvr-debian:~# mkdir -p /home/mk802
root@u5pvr-debian:~# pure-pw useradd mk802 -u 1023 -g 1023 -d /home/mk802 -m
# mk802 계정 생성
Password:
Enter it again:
root@u5pvr-debian:~# cd /home/mk802
root@u5pvr-debian:/home/mk802# ln -s /mnt/sda/sda1 disk1
# sda1 을 disk1 과 심링크
root@u5pvr-debian:/home/mk802# ls
disk1
root@u5pvr-debian:/home/mk802#
mk802 계정으로 접근을 해 보도록 하겠습니다.
설정한 구성대로 작동이 잘 됩니다. 이처럼 원하는 방식대로 폴더를 심링크하여 홈폴더를 구성하실 수 있습니다.
기본적으로는 /mnt 를 홈폴더로 잡으면 모든 디스크에 접근이 가능하게 되어 있습니다.
폴더를 여러번 진입하는 것이 귀찮으시면 /mnt/sdcard 등을 홈폴더로 지정하면 됩니다. 그러나 다른 디스크에 접근을 할 수가 없기 때문에 심링크를 통한 작업을 하시면 더욱 더 편하게 사용이 가능합니다.
3. 외부접속을 위한 포트포워딩 하기
포트포워딩의 정보는 아래와 같습니다.
TCP 21
TCP 49152 ~ 65534
아이피 타임 공유기 기준으로는 아래와 같이 포워딩을 합니다.
21 번 포트 말고 다른 포트를 사용하셔도 되고 저는 2211 포트를 사용합니다.
패시브 포트는 설정해 주신대로 해주시면 됩니다. 기본값으로 위의 사진으로 설정하시면 됩니다.
감사합니다.