FTP란 파일 전송을 위한 통신 규칙 또는 약속을 말한다.
FTP(File Transfer Protocol)는 서버와 클라이언트 장치 간 파일 전송을 위한 통신 규칙이다.
이번에는 FTP 설치 후 Windows에 있는 파일을 Linux로 넘겨주는 간단한 작업을 해볼 예정이다.
FTP server는 FTP를 사용하여 파일 전송을 할 수 있는 서버를 말한다.
클라이언트는 서버에 접속하여 자신의 파일을 서버에 저장(업로드)하거나,
서버의 파일을 자신의 컴퓨터에 저장(다운로드)할 수 있다.
FTP 설치 및 사용을 위한 작업
FTP 파일 전송을 위해, Linux(FTP server)와 Windows(FTP client)에서 할 작업이 있다.
(1) Linux
먼저 Linux에서는 아래 다섯 줄의 명령어를 차례로 입력해준다.
- yum -y install vsftpd-* : FTP 설치
- systemctl restart vsftpd : FTP server 동작
- systemctl enable vsftpd : 부팅시 FTP server 자동으로 실행
- firewall-cmd --permanent --add-service=ftp : 방화벽 예외규칙에 FTP 추가
- firewall-cmd --reload : 방화벽 예외규칙 적용
첫 번째 명령어로 FTP가 성공적으로 설치되면 관련 내용과 함께 Complete! 안내가 출력된다.
다음 네 개의 명령어를 차례로 입력하고 success 안내를 받으면 Linux에서의 작업은 끝이 난다.
(2) Windows
Windows에서는 FTP 통과가 가능하도록 방화벽 설정을 변경해주어야 한다.
제어판 보기 기준을 '범주'로 설정한 후,
시스템 및 보안 → Windows Defender 방화벽 → Windows 방화벽에서 앱 허용으로 진입한다.
허용되는 앱 및 기능에 '파일 전송 프로그램'이 존재하고 체크박스가 모두 선택되어 있으면,
cmd(명령 프롬포트)에서 FTP 접속이 가능하다.
* 반드시 개인, 공용 란을 모두 체크해야 한다.
하나라도 안 되어 있으면 파일 전송 과정에서 Failed to establish connection 에러가 발생한다.
파일 전송 프로그램이 허용되는 앱 및 기능 목록에 없는 경우 이를 목록에 추가해주어야 한다.
설정 변경 → 다른 앱 허용 → 앱 추가 → 찾아보기 → ftp.exe 열기 → 파일 전송 프로그램 추가
ftp.exe는 C:\Windows\System32 폴더에 위치하며, 확장명 숨김 상태에서는 'ftp'로 뜬다.
환경변수를 건드리지 않는 이상 '찾아보기' 클릭 시 기본 위치는 System32 폴더이다.
FTP 사용 방법
사용에 앞서 클라이언트 쪽에서 파일 전송에 사용할 폴더를 세팅해야 한다.
Windows의 C:드라이브 안에 '05ftp' 폴더와 그 하위 폴더 'AM09'를 임의로 생성해준다.
AM09 폴더 안에 실습에 사용할 test.txt 파일을 생성 후 '보기 → 파일 확장명'을 체크한다.
파일 확장명은 파일명의 일부이므로, 파일의 전체 이름을 볼 수 있도록 하는 것이 좋다.
1. 접속
Windows의 cmd(명령 프롬포트)에서 FTP 서버 접속 작업을 진행한다.
접속 시도는 항상 FTP 클라이언트 쪽에서 이루어져야 한다.
접속 작업은 다음의 단계를 거쳐 이루어진다.
- cmd 창 실행(Windows 검색 → 명령 프롬포트)
- 드라이브 내 FTP에 사용할 폴더로 이동
- ftp <Linux IP> (Linux IP 주소로 ftp 접속 시도)
- 사용자 로그인 (root 아닌 일반 사용자 접속)
cd/ 명령어 입력 시 C:드라이브로 이동한다. (D:와 E:드라이브는 각각 d:와 e: 명령어 사용)
cd 명령어는 Windows cmd에서도 작동하므로, 이를 사용해 05ftp/am09 경로로 접근한다.
(대소문자 구분이 없는 Windows는 am09와 AM09를 동일하게 인식한다.)
ftp <Linux IP> 형태의 명령어로 Linux 가상 컴퓨터 FTP 서버에 접근할 수 있다.
FTP는 root 계정으로 접속이 불가능하므로, 일반 사용자 itbank로 로그인을 시도한다.
(password : itbank)
Login successful 메시지가 출력되면 FTP 서버 접속에 성공한 것이다.
접속이 완료되면 FTP client 폴더와 FTP server 사용자 홈 디렉토리 간 파일 전송이 가능하다.
접속 종료는 quit 명령어를 사용한다.
장시간 입력이 없으면 FTP 접속이 자동으로 끊어지기 때문에,
접속 후 당장 실행할 작업이 없으면 바로바로 접속을 종료해주는 것도 좋다.
2. 파일 전송
1) 업로드
클라이언트가 자신의 컴퓨터에 있는 파일을 서버에 저장(복사)하는 작업이다.
'put 파일명' 형태의 명령어로 파일을 업로드 할 수 있다.
(* 업로드 할 파일이 FTP에 사용할 폴더 안에 있는 상태에서 입력)
FTP 서버 itbank 사용자의 홈 디렉토리가 비어있는 것을 확인하고 시작한다.
Windows 명령 프롬프트에서 FTP에 접속한 후 AM09 폴더의 test.txt 파일을 서버에 업로드한다.
Transfer complete 이후 홈 디렉토리에 test.txt 파일이 잘 들어가 있는 것을 확인할 수 있다.
간혹 Transfer complete 메시지가 아닌 Could not create file 오류가 출력되기도 한다.
이는 사용자 홈 디렉토리가 홈 디렉토리로서의 역할을 하지 못하기 때문에 발생한다.
기존의 사용자 홈 디렉토리를 삭제한 경우,
같은 위치에 같은 이름으로 디렉토리를 다시 만들어도 더 이상 홈 디렉토리로 기능하지 않는다.
아직은 정석으로 홈 디렉토리를 복구하는 법을 배우지 않았기 때문에,
실수로라도 홈 디렉토리를 지우게 된다면 삭제 이전의 snapshot을 찾아 돌아가면 된다.
2) 다운로드
클라이언트가 서버에 있는 파일을 자신의 컴퓨터에 저장(복사)하는 작업이다.
'get 파일명' 형태의 명령어로 파일을 다운로드 할 수 있다.
(* 다운로드 할 파일이 로그인 한 사용자의 홈 디렉토리 안에 있는 상태에서 입력)
/home/itbank/ 디렉토리에 /etc/inittab 파일을 복사해준다.
이번에는 get 명령어를 활용해 홈 디렉토리의 inittab 파일을 AM09 폴더로 다운로드한다.
마찬가지로 AM09 폴더에 inittab 파일이 잘 들어가 있는 것을 확인할 수 있다.
FTP 실습 예제
(풀이)
Windows 명령 프롬포트에서는 dir 명령어가 Linux의 ls -l 명령어의 역할을 한다.
dir 명령어로 AM09에 named.conf와 named.rfc1912.zones가 잘 위치해 있는지 확인한다.
named.conf, named.rfc1912.zones 두 개의 파일 모두 잘 옮겨진 것을 확인할 수 있다.
두 파일을 병합한 named.1과 named.2 역시 홈 디렉토리 안에 잘 들어가 있다.
병합이 잘 되었는지는 파일 크기를 통해 간단히 확인할 수 있다.
named.1, named.2의 파일 크기 1915는 기존 두 파일의 크기 984와 931을 합한 값이다.
'2022 데이터 사이언스 > Linux' 카테고리의 다른 글
09. vi 에디터(2): 실행 모드 (0) | 2022.05.22 |
---|---|
08. vi 에디터(1): 명령 모드, 입력 모드 (0) | 2022.05.22 |
06. 기초 명령어(3) (0) | 2022.05.19 |
05. 기초 명령어(2) (0) | 2022.05.17 |
04. 기초 명령어(1) (0) | 2022.05.16 |