서버에 파일 업로드하는 3가지 방법 (FTP, SCP, Rsync)
웹 서버를 구축하고 나면 로컬 컴퓨터에 있는 파일을 서버로 업로드해야 할 일이 자주 생긴다. 예를 들어 웹사이트 소스코드, 이미지 파일, 설정 파일 등을 서버에 올릴 때 사용하는 대표적인 방법이 FTP, SCP, Rsync다. 이 글에서는 리눅스 기반 서버에 파일을 업로드하는 주요 방법 3가지를 각각의 특징과 사용법 중심으로 정리한다.
1. FTP – File Transfer Protocol
FTP는 오래전부터 사용된 파일 전송 방식으로, GUI 기반 툴(FileZilla 등)을 함께 사용하면 초보자도 쉽게 활용할 수 있다.
특징
- 익숙한 인터페이스로 파일 전송 가능
- GUI 툴을 통해 드래그 앤 드롭 방식 지원
- 계정 및 포트 설정이 필요하며, 보안이 취약할 수 있음
설치 (Ubuntu 기준)
서버에 FTP 서버 설치 (vsftpd 등):
sudo apt install vsftpd
기본 설정 파일: /etc/vsftpd.conf
설정 후 FTP 계정 생성 및 방화벽 포트(21) 열기 필요
클라이언트 사용 예
- FileZilla, WinSCP, Cyberduck 등
- 주소: 서버 IP
- 포트: 21
- 사용자명 / 비밀번호 입력 후 접속
2. SCP – Secure Copy
SCP는 SSH를 기반으로 파일을 암호화해 전송하는 방식이다. 리눅스, macOS에서는 기본 명령어로 제공되며, 윈도우에서도 WSL이나 PuTTY를 이용해 사용 가능하다.
특징
- SSH 기반으로 보안성이 높음
- 추가 설정 없이 바로 사용 가능
- CLI 명령어에 익숙해야 함
사용 예시
단일 파일 업로드:
scp localfile.txt 사용자명@서버IP:/home/사용자명/
디렉터리 전체 업로드:
scp -r myfolder/ 사용자명@서버IP:/home/사용자명/
포트 변경 시:
scp -P 2222 localfile.txt 사용자명@서버IP:/경로/
3. Rsync – 동기화 기반 전송
Rsync는 파일 동기화 기능을 제공하는 강력한 CLI 도구로, 대용량 파일이나 반복적인 업로드에 적합하다. 변경된 파일만 전송하므로 효율적이다.
특징
- 빠르고 효율적인 전송
- 증분 전송 지원 (변경된 파일만 복사)
- SSH 기반으로 보안성 높음
- 백업, 배포 자동화에 활용 가능
사용 예시
디렉터리 전체 업로드:
rsync -avz myfolder/ 사용자명@서버IP:/home/사용자명/myfolder/
포트 변경 시:
rsync -avz -e "ssh -p 2222" myfolder/ 사용자명@서버IP:/home/사용자명/
옵션 설명:
- -a: 보존 모드(권한, 소유자 등 유지)
- -v: 출력 표시
- -z: 전송 중 압축
어떤 방식을 선택해야 할까?
방식 보안성 속도 편의성 추천 상황
| FTP | 낮음 | 보통 | 높음 | 초보자, GUI 선호할 때 |
| SCP | 높음 | 빠름 | 보통 | 단발성 전송, CLI 익숙할 때 |
| Rsync | 매우 높음 | 매우 빠름 | 낮음 | 대용량 백업, 자동화 스크립트 등 |
마무리
서버에 파일을 업로드하는 방법은 환경과 목적에 따라 다양하게 선택할 수 있다. 단순히 몇 개의 파일을 옮길 때는 SCP, 반복적으로 동기화할 필요가 있을 때는 Rsync, GUI 환경이 필요할 땐 FTP가 적합하다. 각 방법을 익혀두면 서버 관리나 배포 과정에서 효율성과 안정성을 모두 확보할 수 있다.