본문 바로가기
매일코딩/리눅스-우분투

Ftp 서버(Server) 설치 사용

by 인생여희 2017. 11. 17.
반응형


설치 하기

$ sudo apt-get install vsftpd


설정 하기

쓰기 권한을 주기 위해서 /etc/vsftpd.conf 파일에서 아래 부분을 찾아

# 코멘트만 제거해 주면, 기본적으로 사용할 수 있는 환경이 됩니다.

write_enable=YES

local_umask=022

서버가 클라이언트쪽에 비정상적인 접속시도를 하는 것을 막기 위한 passive 모드 사용을 위해선

아래 내용도 /etc/vsftpd.conf 파일 끝에 추가해 줍니다.


allow_writeable_chroot=YES

pasv_enable=Yes

pasv_min_port=40000

pasv_max_port=40100

서비스 컨트롤 방법


vsftp 서버의 시작/중지/재시작은 우분투의 service명령을 사용합니다.

아파치 서버 컨트롤과 같은 방식입니다.


$ sudo service vsftpd start ## vsftpd 데몬을 시작합니다.

$ sudo service vsftpd stop ## vsftpd 데몬을 멈춥니다.

$ sudo service vsftpd restart ## vsftpd 데몬을 재시작합니다.

ftp 명령어 사용법


ftp에서 제공하는 명령어 리스트는 ftp명령후 ftp프롬프트에서 help 명령으로 확인 가능합니다.


$ ftp

ftp> help

접속은 ftp 모드에서 open 명령을 사용하는 법과


$ ftp

ftp> open 192.168.0.110 

ftp 명령어 뒤에 직접 ip나 호스트명을 써서  접속하는 법이 있습니다.


ftp 192.168.0.110

ftp 모드에서 자주 사용하는 명령어를 정리해 보면 아래와 같습니다.

A라는 컴퓨터에서 B(192.168.0.111)라는 컴퓨터에 ftp 접속하여 파일을 보내고 받는 스토리를 가정해 보겠습니다.


$ cd ~/Downloads ## A 컴퓨터에서 홈디렉토리 아래 Downloads 디렉토리로 이동합니다.

$ ftp 192.168.0.111 ## A에서 B로 ftp접속 합니다. 

$ password: ## 아이디/암호 치시면 기본적으로 B 컴퓨터의 아이디의 홈디렉토리로 이동합니다.

ftp> cd /temp ## B 컴퓨터의 /temp 디렉토리로 이동합니다.

ftp> bin ## 전송 모드를 binary로 설정합니다. ascii 모드 보다 안정적입니다.

ftp> ls ## B 컴퓨터 /temp 디렉토리 파일들을 리스트 합니다.

ftp> get testB.txt ## B 컴퓨터 /temp 디렉토리의 testB.txt 파일을 A 컴퓨터 ~/Downloads 디렉토리로 가져옵니다.

ftp> put testA.txt ## A 컴퓨터 ~/Downloads 디렉토리의 testA.txt 파일을 B 컴퓨터 /temp 디렉토리로 보냅니다.

ftp> mget *.mp3 ## B 컴퓨터 /temp 디렉토리의 mp3 파일 모두를 A 컴퓨터 ~/Downloads 디렉토리로 가져옵니다.

ftp> mput *.mp4 ## A 컴퓨터 ~/Downloads 디렉토리의 mp4 파일 모두를 B 컴퓨터 /temp 디렉토리로 보냅니다.

ftp> prompt ## mget이나 mput 명령어 사용시 파일 각각에 대해 전송여부 yes/no를 묻는게 불편할 때 사용합니다.

## 토글링 명령어라 온/오프 식으로 동작합니다.

ftp> passive ## 패시브 모드를 온 시킵니다.

ftp> exit ## 빠져 나옵니다. quit를 사용하셔도 됩니다.

홈디렉토리 밖으로도 접근하게 하려면 /etc/vsftpd.conf 파일에서


chroot_local_user=YES

라인을 찾아서 # 코멘트를 제거해 주세요.


혹 ftp를 이용하여 일괄 백업이나, 자동 파일 배포등의 스크립트 파일을 만들어 사용하시고픈 경우는

-ni 옵션과 input 리다이렉트 < 를 이용하시면 좋습니다.

간단히 억지 예를 들어 설명드리면  test.sh란 파일을  자주 특정 컴퓨터에 보내야 하는 상황이 있다면,

그 때 마다  명령어를 일일이 치는 것은 비효율적일 겁니다.

ftp모드에서 사용하는 명령어들 즉 아래내용을 그대로 파일로 저장하고, 파일명은 임의로 ftpTransfer라고 하면 


open 192.168.0.111

user 유저명 암호

bin

put test.sh

bye

아래 코드 처럼 입력하면 네트워크 자체에 문제가 없다면 파일 안의 내용이 자동으로 실행되어 파일이 전송됩니다.

crontab을 이용하시면 특정 시간에 실행되는 스크립트를 만들수 있고,

필요한 상황을 잘 분석하시면 스크립트를 이용해서 좋은 자동 전송명령어를 만드실 수 있을겁니다.


ftp -ni < ./ftpTransfer 

보안문제가 걱정되신다면  외부 네트워크에 접속하는 경우에는 sftp(secure ftp) 사용을 권장드립니다.


출처 http://html5around.com/wordpress/tutorials/ubuntu-ftp-server-install-use/


반응형

댓글