命令行 FTP(File Transfer Protocol)是一种通过文本界面在客户端和服务器之间传输文件的标准协议,广泛应用于服务器管理、文件备份和数据共享等场景,与图形化 FTP 工具相比,命令行 FTP 更高效、更灵活,尤其适合自动化脚本和远程服务器维护,本文将详细介绍如何通过命令行使用 FTP 下载文件,包括连接服务器、导航目录、传输文件及常见问题处理等内容,并通过表格对比不同命令的功能,最后以 FAQs 形式解答常见疑问。

连接 FTP 服务器
使用命令行 FTP 下载文件的第一步是连接到目标 FTP 服务器,在 Windows 系统中,可通过打开命令提示符(CMD)或 PowerShell 执行 ftp 命令;在 Linux 或 macOS 系统中,可直接打开终端并输入 ftp,连接命令的基本格式为 ftp [服务器地址],ftp ftp.example.com,若服务器使用非标准端口(如 2121),需通过 -p 参数指定,如 ftp -p 2121 ftp.example.com,连接成功后,系统会提示输入用户名和密码,如果是匿名 FTP 服务器,用户名通常为 anonymous,密码可为任意邮箱地址或留空。
FTP 常用命令及功能
连接到 FTP 服务器后,需通过一系列命令完成文件下载操作,以下是核心命令及其功能的详细说明,部分命令可通过表格形式对比:
| 命令 | 功能描述 | 示例 |
|---|---|---|
ls |
列出当前目录下的文件和子目录,类似 Linux/Windows 的 dir 命令。 |
ls 或 ls -l(显示详细信息) |
cd |
切换当前目录,cd .. 返回上一级目录。 |
cd /pub/docs |
pwd |
显示当前所在的服务器目录路径。 | pwd |
get |
下载单个文件,需指定远程文件名和本地保存路径(可选)。 | get file.txt 或 get file.txt C:\local\ |
mget |
批量下载多个文件,支持通配符(如 *.txt)。 |
mget *.txt |
binary |
切换二进制传输模式,适用于可执行文件、压缩包等非文本文件,避免文件损坏。 | binary |
ascii |
切换 ASCII 模式,适用于文本文件,自动处理换行符差异。 | ascii |
prompt |
关闭交互式提示,执行 mget 时无需逐个确认文件下载。 |
prompt off |
bye 或 quit |
断开与 FTP 服务器的连接并退出 FTP 客户端。 | bye |
文件下载操作步骤
- 连接服务器:执行
ftp ftp.example.com并输入凭据,若连接失败,检查服务器地址、端口及网络是否可达。 - 导航目标目录:使用
ls查看目录结构,通过cd命令进入包含待下载文件的目录。ftp> cd /downloads ftp> ls - 设置传输模式:根据文件类型选择模式,下载二进制文件(如
.zip、.exe)前务必执行binary。 - 执行下载:
- 下载单个文件:
get example.zip,文件将保存在本地当前目录。 - 批量下载:
prompt off关闭交互提示后,执行mget *.zip下载所有 ZIP 文件。
- 下载单个文件:
- 验证文件:下载完成后,可通过本地
md5sum或sha256sum命令校验文件哈希值,确保完整性。 - 断开连接:执行
bye退出 FTP 会话。
高级技巧与注意事项
- 被动模式(PASV):若客户端位于防火墙后,需启用被动模式以避免连接超时,命令为
passive。 - 脚本自动化:可通过批处理脚本(Windows)或 Shell 脚本(Linux)实现自动下载,Windows 批处理文件
ftp_download.bat内容如下:open ftp.example.com username password cd /downloads binary get file.zip bye执行时使用
ftp -s:ftp_download.bat。 - 安全性问题:FTP 传输未加密,敏感数据建议使用 SFTP(基于 SSH 的安全文件传输)或 FTPS(FTP over SSL/TLS),若需加密,可通过 OpenSSL 工具或启用 FTPS 的客户端(如
lftp)。 - 中断续传:部分 FTP 客户端支持
reget命令(如reget large_file.zip),可从断点继续下载未完成的文件。
常见错误及解决方法
- “530 Login incorrect”:用户名或密码错误,联系服务器管理员确认凭据。
- “550 File not found”:文件或目录不存在,检查路径拼写及权限。
- “Connection timed out”:网络问题或防火墙阻止,尝试切换为被动模式或检查代理设置。
- 文件损坏:未使用二进制模式传输二进制文件,重新执行
binary后重试。
相关问答 FAQs
Q1: 如何通过命令行 FTP 下载整个目录?
A: FTP 原生不支持直接下载目录,但可通过组合命令实现,先创建本地目录,然后使用 mget 下载所有文件:

ftp> mkdir local_dir
ftp> lcd local_dir
ftp> cd /remote/dir
ftp> binary
ftp> prompt off
ftp> mget *
对于复杂目录结构,建议使用 wget 或 lftp(支持 mirror 命令)等工具。
Q2: FTP 下载速度慢,如何优化?
A: 可尝试以下方法:
- 切换为被动模式(
passive),避免 NAT 网络问题。 - 使用
binary模式减少传输开销。 - 增加本地网络带宽或选择服务器负载较低的时段下载。
- 若服务器支持,改用 SFTP 或 FTPS,可能因加密优化传输效率。
- 通过多线程工具(如
aria2c)配合 FTP 下载,aria2c -x 8 ftp://ftp.example.com/file.zip。

