Posts Raspberry Pi FTP - 라즈베리파이 ftp 파일서버로 사용하기(by vsftpd)
Post
Cancel

Raspberry Pi FTP - 라즈베리파이 ftp 파일서버로 사용하기(by vsftpd)

pi

FlyingDeuk's

보편적으로 가장 많이 사용하는 서버의 방식이라 하겠다.
물론 요즘의 Cloud 서버, NAS들은 디자인이 이쁜 Web base UI를 더 많이 이용하는 것 같지만…
개인적으로 직관적인 ftp가 더 가볍게 느껴진다.

Wiki's

파일 전송 프로토콜(File Transfer Protocol, FTP) 은 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. 파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며, 역사는 오래 되었지만 지금도 인터넷에서 자주 사용된다.

vsftpd 사용법

리눅스이 대표적인 vsftpd를 사용중이다.

vsftpd 설치

apt로 설치는 간단하다.

1
$ sudo apt install vsftpd

vsftpd 설정

일반 로컬유저의 root 폴더 접근제한을 위한 설정법임.

일반 사용자들이 root에 접근하는 것은 좋지않은 방법이다. 일반 사용자가 내 PC의 모든 곳을 쑤시고 다니는 것은 원치않으니 말이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ sudo vim /etc/vsftpd.conf
.
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
.
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
.
# You may fully customise the login banner string:
ftpd_banner=Welcome to flyingdeuk FTP service.
#
.
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
.
# Uncomment this to indicate that vsftpd use a utf8 filesystem.
utf8_filesystem=YES
  • local_enable=YES : 로컬 유저의 접속을 위해
  • write_enable=YES : 쓰기 허용
  • local_umask=022 : umask는 권한의 보수로 계산한다. 022은 결국 755의 권한과 같은 효과이다. 자세한 설명은 umask 포스팅 참조.
1
2
3
4
5
6
7
8
Umask    Created Files       Created Directories
------------------------------------------------
000(0)   666 (rw-rw-rw-)     777     (rwxrwxrwx)
002(2)   664 (rw-rw-r--)     775     (rwxrwxr-x)
022(18)  644 (rw-r--r--)     755     (rwxr-xr-x)
027(23)  640 (rw-r-----)     750     (rwxr-x---)
077(63)  600 (rw-------)     700     (rwx------)
277(191) 400 (r--------)     500     (r-x------)
  • ftpd_banner : welcome 인사멘트
  • chroot_local_user=YES : chroot는 change root란다. 로컬 유저의 root 폴더를 자신의 home 폴더로 한정한다. yes!!! (로컬 유저는 자신의 home folder가 root 폴더가 됨. 상위 폴더 접근은 제한됨)
  • chroot_list_enable=YES : root 이동 제한 예외 대상자 list 허용 (관리자 계정은 root 접근가능하게…)
  • chroot_list_file=/etc/vsftpd.chroot_list : 파일 지정하고 관리자 ID를 넣어주면 됨.

    $ sudo vim /etc/vsftpd.chroot_list : 새로 작성
    deuktest

  • allow_writeable_chroot : 이 줄은 새로 추가해줘야함. 역할은 chroot가 된 일반 로컬유저의 쓰기 허용… 안해주면 파일 쓰기가 안된다.
  • utf8_filesystem=YES : 요즘은 utf8로 통일되는 거 같다. 한글 폰트 깨지지않게 하려면 yes!

파일 관리

FTP 서버내의 파일을 관리하는 방법이다. 가능하면 순정 기능 내에서 간단하게 사용하는 방법들 위주로 소개한다.
기본은 파일을 다운로드하는 게 대부분이고 스트리밍은 다른 어플을 사용해야한다.

Windows

기본 지원되는 순정 기준의 방법이다.

MAC Book

기본 지원되는 순정 기준…

IOS

아쉽게도 순정 “파일”엡에서는 불가능하다. Document 무료어플에선 가능하다.

ftp

다양한 기능에 무료 어플!!

ftp

+ Add Connection 으로 여러가지 서버에 연결 가능함.

ftp

DDNS 주소 deuktest.iptime.org, 사용자이름, 비밀번호, 포트번호 넣으면 끝!!!

Document는 PDF 뷰어로 유명하나 AutoSync등의 다양한 기능을 가지고 있다. 놀라운 건 스트리밍까지 된다. -> 최근들어 자막이 잘 나오지 않는 것 같다. 업데이트후 사라진 건지… 안될땐 아래 참조…

Android

가볍고 무료인 CX 파일 탐색기로 쉽게 이용가능하다. (안드로이드는 순정이랄게 없으니…)

ftp

무료이면서 다양한 기능을 제공한다. 내 모든 서버는 이 어플에서 해결하는 편이다. 모바일이 대세…

ftp

네트워크 -> + : 서버 추가

ftp

FTP 선택

ftp

DDNS 주소 deuktest.iptime.org, 사용자이름, 비밀번호, 포트번호 넣으면 끝!!!

스트리밍

스트리밍이 된다는 것은 결국엔 파일관리까지 된다는 이야기임. 다운로드 역시 당연하다.

Windows, MAC Book, IOS, Android(FIRE TV)

요즘 나오는 대부분의 동영상 플레이어들은 네트워크 기능을 가지고 있어서 쉽게 메뉴에서 찾아 볼 수 있다.

내가 쓰는 VLC, KODI 정도만 소개한다.

VLC Player

ftp

ftp

네트워크 항목에서 연결하기 눌러 정보만 넣어주면 된다.
동영상 플레이어이기 때문에 자막도 문제 없이 재생된다.

가끔 폴더의 한글이 깨지는 현상이 있을 수 있다.

설정의 제일 아래에 FTP 폰트에서 UTF-8을 선택하던지 다른 걸루 바꿔주면 해결이 가능하다.

KODI

내가 제일 좋아하는 어플… 해당 포스팅 참조하면 된다.


PostScript

해외 호텔에서의 사용이 많은 만큼 FTP 방식을 주로 사용한다. 스트리밍을 지원해주는 어플들이 많아져서 FTP도 다운로드없이 스트리밍으로 볼 수 있다는 것 자체가 너무 편해진 느낌이다.

친한 지인에게도 아이디 몇 개 나눠주고 생색내는 것도 하나의 방법… 단 너무 사용자가 많으면… 공유기는 성능이 떨어지니… 라즈베리파이 한대 구매하는 것도.. 다른 포스팅 참조…

IPTIME 공유기의 간단한 설명보다 조금은 어려웠다. 특히 chroot의 개념이 헛갈려서…
또 신기한건 allow_writeable_chroot라는 명령을 추가하는 데… 무엇을 보고 어떤 문법으로 설정을 추가할 수 있는 지… 방법을 찾아봐야 겠다.


< Back to Raspberry Pi >

This post is licensed under CC BY 4.0 by the author.

Raspberry Pi DLNA/UPnP - 라즈베리파이 DLNA/UPnP 미디어 서버로 사용하기(by minidlna)

Raspberry Pi transmission - 라즈베리파이 토렌트(Torrent) 머신으로 사용하기(by transmission-daemon)

Comments powered by Disqus.