Ubuntu FTP 서버 구축 | vsftpd 설치부터 WinSCP 접속까지
// WSL2 · Ubuntu · FTP · vsftpd
처음 보는 사람도 이해할 수 있게 — 개념부터 접속 확인까지 한 번에
왜 WSL2에서 구축하냐면
Linux 서버 실습하려고 VM 켜는 게 너무 무거웠다.
"그냥 Windows에서 바로 되면 안 돼?"
WSL2면 가능하다. Ubuntu 올리고 vsftpd 설치하면 VM 없이도 FTP 서버가 돌아간다. WinSCP로 같은 PC에서 바로 접속 확인까지 된다. 그래서 이렇게 했다.
Ubuntu vs Rocky Linux 차이점
패키지 관리자: Rocky
dnf → Ubuntu apt설치 명령어:
dnf install vsftpd → apt install vsftpd방화벽: Rocky
firewalld → Ubuntu ufw (WSL2에서는 둘 다 기본 비활성화)나머지 vsftpd 설정, WinSCP 접속 방법은 동일!
이게 전부다. 추가로 구성한 것들:
✓
vsftpd 설치 (apt)
Ubuntu 패키지 관리자로 한 번에 설치
✓
vsftpd.conf 설정
로컬 계정 허용, 업로드 허용, 패시브 모드, chroot
✓
FTP 접속용 계정 생성 (adduser)
root 대신 별도 ftpuser 계정으로 접속
✓
WinSCP로 접속 확인
같은 PC의 Windows에서 localhost로 바로 접속
기술 스택
OS
Windows + WSL2
Ubuntu 20.04 / 22.04
FTP SERVER
vsftpd
Very Secure FTP Daemon
PACKAGE
apt
Ubuntu 패키지 관리자
CLIENT
WinSCP
Windows FTP/SFTP 클라이언트
Ubuntu 쓴 이유는 단순하다. WSL2 기본 배포판이고, apt 패키지 관리가 편하고, vsftpd 설치가 한 줄이다.
구조
설정 파일 1개짜리 구성이다. 단순한 게 최고다.
FTP란? vsftpd란?
💡
실습 환경
OS: Windows 10/11 + WSL2 Ubuntu
FTP 서버: vsftpd / 기본 포트:
접속 확인: Windows WinSCP
FTP 서버: vsftpd / 기본 포트:
21접속 확인: Windows WinSCP
WSL2 IP 확인하는 방법
WinSCP 접속 시 필요한 IP를 먼저 확인한다. WSL2는 재시작마다 IP가 바뀌므로 작업 전에 꼭 확인한다.
💡
같은 PC라면 localhost로 접속 가능
같은 Windows에서 WinSCP로 접속할 때는 IP 대신
localhost를 써도 된다. IP가 바뀌어도 영향 없어서 편리하다.vsftpd 설치하는 방법
Ubuntu는 apt로 설치한다. 먼저 패키지 목록을 업데이트하고 설치한다.
💡
apt update는 왜 먼저 해야 하나?
apt update는 설치 가능한 패키지 목록만 갱신하는 명령어다. 이걸 먼저 해야 최신 버전의 vsftpd를 설치할 수 있다. 실제 설치나 업그레이드는 안 된다.apt update 실행 & apt install -y vsftpd 설치 완료
vsftpd.conf 설정하는 방법
vsftpd 설정 파일을 수정한다. 수정 전 백업을 먼저 해두는 게 좋다.
⚠️
Ubuntu와 Rocky Linux 경로 차이
Rocky Linux:
Ubuntu:
/etc/vsftpd/vsftpd.confUbuntu:
/etc/vsftpd.conf ← 폴더 없이 바로 있음!
아래 항목을 찾아서 수정하거나 추가한다. #으로 주석 처리된 항목은 #을 제거해서 활성화한다.
⚠️
삽질 포인트
chroot_local_user=YES로 설정했는데 allow_writeable_chroot=YES를 빠뜨리면 "500 OOPS: vsftpd: refusing to run with writable root" 오류가 난다. 반드시 같이 추가할 것.
💡
각 설정 항목 쉽게 이해하기
local_enable=YES — Ubuntu 계정으로 FTP 로그인 허용write_enable=YES — 업로드 허용. NO면 다운로드만 됨chroot_local_user=YES — 사용자가 홈 디렉터리 밖으로 못 나가게 가둠pasv_address — WSL2 IP 지정. 없으면 패시브 모드 파일 전송 안 됨
vsftpd 서비스 시작하는 방법
FTP 접속용 계정 만드는 방법
root 계정은 기본적으로 FTP 접속이 막혀 있다. 별도 계정을 만들어서 접속한다.
💡
Ubuntu는 adduser, Rocky는 useradd
Ubuntu
adduser는 홈 디렉터리 생성까지 자동으로 해준다. Rocky의 useradd와 결과는 동일하다.WinSCP로 접속하는 방법
Windows에서 WinSCP를 열고 아래 정보를 입력해서 접속한다.
WinSCP는 winscp.net 에서 무료 다운로드 가능하다.
WinSCP 접속 정보 입력 (호스트이름 = 서버 IP)
✓
접속 성공!
WinSCP 오른쪽 창에 Ubuntu 파일 목록이 보이면 FTP 서버 구축 완료다 🎉
전체 흐름 요약
간단한데 이거 없으면 파일 전송할 때마다 scp 명령어 쳐야 해서 불편하다. WinSCP 붙여두면 드래그앤드롭으로 끝난다.
자주 묻는 질문 (FAQ)
Q. WinSCP에서 "Connection refused" 오류가 나요
1.
2.
3.
sudo systemctl status vsftpd — 서비스 running 상태 확인2.
hostname -I — IP 재확인 (WSL2는 재시작마다 IP 변경됨)3.
localhost로 접속 시도해보기
Q. "500 OOPS: vsftpd: refusing to run with writable root" 오류
/etc/vsftpd.conf에 allow_writeable_chroot=YES를 추가하고 sudo systemctl restart vsftpd로 재시작하면 해결된다.Q. WSL2 재시작 후 FTP가 안 돼요
WSL2는 재시작 시 서비스가 자동으로 안 올라올 수 있다.
sudo systemctl start vsftpd로 수동 시작하거나, /etc/wsl.conf에 systemd 설정을 추가해서 자동 시작되도록 설정하면 된다.Q. 파일 업로드가 안 돼요
/etc/vsftpd.conf에서 write_enable=YES가 설정됐는지 확인하고 sudo systemctl restart vsftpd로 재시작해보면 된다.// 교훈
Ubuntu로 더 쉽게 구축하는
FTP 서버, 이제 직접 만들어봤다.
FTP 서버, 이제 직접 만들어봤다.
Tags:
#Ubuntu
#WSL2
#vsftpd
#FTP
#서버구축
#WinSCP






