안내

Windows 명령줄에서 FTP를 쓰는 방법

Windows에 내장된 명령줄 FTP 클라이언트를 실제로 따라가 봅니다. 연결하기, get과 put으로 파일 전송하기, -s:로 스크립트 만들기, 그리고 ftp.exe가 한계에 부딪혔을 때 무엇을 집어 들지 다룹니다.

· 6 분이면 읽습니다 · Vlad Fedoniuk

모든 Windows PC에는 명령줄 FTP 클라이언트가 함께 들어 있습니다. 1990년대부터 거기 있었지요. 명령 프롬프트나 PowerShell을 열고 ftp를 입력하면 바로 들어갑니다. 설치도, 관리자 권한도, 내려받을 것도 없습니다. 바로 그래서 내 마음대로 할 수 없는 컴퓨터에서 FTP 서버의 파일을 가져오거나, 빌드 서버에서 간단한 전송을 스크립트로 짜기에 지금도 가장 빠른 방법입니다.

이 안내는 ftp.exe 세션 전체를 따라갑니다. 연결하고, 전송하고, 스크립트를 짜는 데까지. 그리고 이 도구가 더 이상 알맞은 선택이 아닌 지점도 솔직하게 짚습니다. 전체 명령 목록만 필요하시다면 FTP 명령어 참고서에 클라이언트 명령어와 프로토콜 명령어가 문법과 예시와 함께 모두 정리되어 있습니다.

FTP는 암호화되지 않은 연결 두 개를 씁니다. 21번 포트의 제어 채널과 일정 범위의 포트를 쓰는 데이터 채널입니다. FTPS는 둘 다에 TLS를 더하지만 여전히 두 개가 필요하고, SFTP는 22번 포트의 암호화된 연결 하나로 모든 것을 나릅니다
Windows의 ftp.exe는 맨 윗줄만 말합니다. FTPS도 SFTP도 없습니다.

1단계: 서버에 연결하기

호스트 이름을 바로 넘겨 세션을 시작하거나, 클라이언트를 먼저 띄운 뒤 open을 쓰세요.

C:\> ftp ftp.example.com
ftp> open ftp.example.com

서버가 안내 문구로 답하고 인증 정보를 묻습니다. 사용자 이름을 입력하고 Enter, 그다음 비밀번호를 입력하세요(화면에 표시되지 않습니다). 허용하는 서버라면 사용자 이름 anonymous에 아무 메일 주소나 비밀번호로 넣으면 공개 파일을 읽을 수 있습니다.

2단계: 둘러보기

이동은 명령 네 개면 됩니다. dir은 현재 원격 디렉터리의 목록을 보여 주고, cd는 그것을 바꾸며, pwd는 지금 어디인지 출력하고, 모두가 잊고 지내는 lcd는 내려받은 파일이 놓이고 올릴 파일을 가져올 로컬 폴더를 바꿉니다.

ftp> dir
ftp> cd /public_html
ftp> lcd C:\Users\vlad\Downloads
Local directory now C:\Users\vlad\Downloads.

3단계: 이진 모드로 바꾸기

평문 텍스트가 아닌 것을 전송하기 전에 binary를 입력하세요. 기본값인 ASCII 모드에서는 ftp.exe가 전송 중에 줄 끝 문자를 고쳐 씁니다. .txt 파일에는 무해하지만 zip, 이미지, 실행 파일을 비롯한 이진 파일은 망가집니다. 이 명령 하나가 「내려받기는 됐는데 열리지 않는다」는 저 고전적인 문제를 막아 줍니다.

ftp> binary
200 Type set to I.

4단계: 내려받기와 올리기

get은 파일을 내려받고 put은 올립니다. 여러 파일을 다루는 mgetmput은 와일드카드를 받고, prompt는 파일마다 묻는 「y/n」 확인을 꺼서 와일드카드가 사람 손 없이 돌아가게 합니다. hash는 블록마다 #를 출력해 긴 전송의 진행 상황을 보여 줍니다.

ftp> hash
ftp> get backup.zip
ftp> put report.pdf
ftp> prompt
Interactive mode Off.
ftp> mget *.log

5단계: 세션 끝내기

bye(또는 quit)가 연결을 닫고 프로그램을 끝냅니다. 전체 세션은 이런 모습입니다.

C:\> ftp ftp.example.com
User: alice
Password: ********
ftp> binary
ftp> cd /backups
ftp> lcd C:\Backups
ftp> get site-backup.zip
226 Transfer complete.
ftp> bye

-s:로 전송을 스크립트로 만들기

ftp.exe는 대화형 세션 대신 스크립트를 실행할 수 있습니다. 명령을 텍스트 파일에 적고(첫 두 줄은 사용자 이름과 비밀번호입니다) -s:로 넘기세요. -n 옵션은 user로 로그인을 직접 스크립트에 적을 때 자동 로그인 물음을 막아 줍니다.

# upload.txt
alice
secretpassword
binary
cd /public_html
lcd C:\Site\dist
prompt
mput *.html
bye
C:\> ftp -s:upload.txt ftp.example.com

이것을 작업 스케줄러와 함께 쓰면 되풀이되는 작업이 됩니다. 다만 방금 무엇을 하셨는지 보세요. 평문 텍스트 파일에 비밀번호를 저장하셨고, 그 프로토콜은 그 비밀번호를 네트워크로도 암호화 없이 보냅니다. 버려도 되는 계정으로 사내망에서 쓰는 것은 괜찮지만, 중요한 일에는 괜찮지 않습니다.

ftp.exe가 더 이상 알맞은 도구가 아닌 지점

내장 클라이언트는 정말 쓸모 있지만, 동시에 30년 된 설계이고 씨름하기 전에 알아 두면 좋은 뚜렷한 한계가 있습니다.

  • 패시브 모드가 없습니다. ftp.exe는 액티브 모드 전송만 지원합니다. 이 방식에서는 서버가 사용자의 PC로 되돌아 연결합니다. 요즘 공유기와 방화벽은 그것을 막기 때문에, 로그인은 잘되다가 dir이나 get에서 끝없이 멈춰 버립니다. 이를 고칠 옵션은 없습니다. 패시브 모드가 아예 구현되어 있지 않습니다.
  • 암호화가 전혀 없습니다. SFTP도 FTPS도 지원하지 않습니다. 인증 정보와 파일 내용이 평문으로 오갑니다.
  • 이어받기도, 하위 폴더 처리도 없습니다. 2 GB짜리 내려받기가 끊기면 처음부터 다시 시작하고, 폴더 트리를 명령 하나로 전송할 방법도 없습니다.

SFTP라면 Windows 10과 11에 OpenSSH의 sftp 명령이 들어 있고, 그것이 스크립트로 쓰기에 현대적인 선택입니다. 명령어 모음이 비슷하지만 똑같지는 않으며, SFTP 명령어 참고서에 전부 정리되어 있습니다.

화면이 그냥 더 빠를 때

명령줄 FTP는 한 번씩 빠르게 가져올 때와 간단한 스크립트에서 제값을 합니다. 양쪽 디렉터리를 함께 다루거나, 실패한 전송을 다시 시도하거나, 폴더 트리를 통째로 옮기는 순간부터는 시간 면에서 화면형 클라이언트가 이깁니다. FTPie는 제대로 작동하는 패시브 모드를 갖춘 Windows용 무료 FTP 클라이언트이고, 한 창에 SFTP와 FTPS, WebDAV, 10가지가 넘는 클라우드 서비스를 함께 담고 있습니다. 끌어다 놓기가 mput을 대신하고, 전송은 알아서 이어지며, 무료 플랜은 서버 연결 3개까지를 감당합니다.

스크립트 쪽이 마음에 드셨다면, FTPie Pro에는 SFTP/FTPS/클라우드를 지원하는 진짜 CLI와 화면으로 쓰는 명령 빌더가 들어 있고, 스크립트와 작업 스케줄러를 오가는 일을 통째로 대신하는 예약 전송도 있습니다. 텍스트 파일에 비밀번호를 적을 일이 없습니다.

동사 목록, 인자 입력 칸, 실시간 미리 보기로 전송 명령을 조립하는 FTPie의 CLI 명령 빌더

전체 명령 목록은 FTP 명령어 참고서를 즐겨찾기에 두세요. 클라이언트 명령어와 그것이 대응되는 원시 프로토콜 명령어가 함께 정리되어 있습니다.

지금 시작하세요 30일 무료 체험

FTPie를 내려받고 30일 무료 체험을 시작하세요. FTP와 클라우드를 매끄럽게 넘나들고, 체험이 끝난 뒤에도 무료 버전을 계속 쓸 수 있습니다.

무료 체험판 다운로드
CASA 인증 및 VirusTotal 검사 완료
30일 체험 · 무료 버전 포함
Windows 10 & 11
Vlad Fedoniuk

Vlad Fedoniuk

FTPie를 만든 창업자이자 개발자입니다. 날마다의 디지털 생활을 더 쉽고 풍성하게 만드는 소프트웨어를 만듭니다. 개인 사이트는 여기에서 fedoni.uk , 또는 다음에서 만나실 수 있습니다 X (formerly Twitter) , LinkedIn , 또는 메일로 연락 주세요 vlad@ftpie.com