连接与认证命令
这些命令用于建立与 FTP 服务器的连接并进行身份验证。

| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
ftp |
File Transfer Protocol | 启动 FTP 客户端程序,进入 FTP 交互模式。 | ftp ftp.example.com |
open |
Open | 在 FTP 交互模式下,连接到指定的 FTP 服务器。 | open ftp.example.com |
close |
Close | 关闭当前与服务器的连接,但仍然停留在 FTP 客户端中。 | close |
bye / quit |
Bye / Quit | 断开与服务器的连接并完全退出 FTP 客户端程序。 | bye 或 quit |
user |
User | 指定用户名进行登录,如果未提供用户名,则使用匿名登录。 | user myusername |
pass |
Password | 提供密码进行身份验证。 | mypassword |
account |
Account | 提供账户信息(某些服务器需要)。 | myaccountinfo |
anonymous |
Anonymous | 匿名登录,通常用户名为 anonymous,密码为你的电子邮件地址。 |
anonymous |
目录导航命令
这些命令用于在 FTP 服务器的文件系统中移动和查看目录。
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
ls |
List | 列出当前目录下的文件和子目录列表,不显示详细信息。 | ls |
dir |
Directory | 列出当前目录下的文件和子目录列表,并显示详细信息(如权限、大小、日期等)。 | dir |
cd |
Change Directory | 切换到指定的目录。 | cd /pub/docs |
pwd |
Print Working Directory | 显示当前所在的工作目录路径。 | pwd |
lcd |
Local Change Directory | 本地命令,切换你电脑上的当前工作目录。 | lcd /home/user/my_local_files |
mkdir |
Make Directory | 在服务器上创建一个新的目录。 | mkdir new_folder |
rmdir |
Remove Directory | 删除服务器上一个空的目录。 | rmdir empty_folder |
文件传输命令
这是 FTP 最核心的功能,用于上传和下载文件。
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
get |
Get | 从服务器下载一个文件到本地计算机。 | get myfile.txt |
mget |
Multiple Get | 从服务器下载多个文件,可以使用通配符 。 | mget *.txt |
put |
Put | 从本地计算机上传一个文件到服务器。 | put mylocalfile.zip |
mput |
Multiple Put | 从本地计算机上传多个文件到服务器,可以使用通配符 。 | mput *.jpg |
ascii |
ASCII | 设置文件传输模式为 ASCII(文本)模式,适用于 .txt, .html, .css, .js 等文件。 |
ascii |
binary / bin |
Binary | 设置文件传输模式为二进制模式,适用于图片、视频、压缩包、可执行文件等所有非文本文件。强烈推荐在不确定时使用此模式。 | binary 或 bin |
hash |
Hash | 开启或关闭传输进度显示,开启后,每传输 1024 字节会显示一个 号。 | hash (开启) / hash (再次输入关闭) |
prompt |
Prompt | 开启或关闭交互式提示,在 mget 或 mput 时,如果开启,会为每个文件提示确认。 |
prompt off (关闭提示,批量传输时更方便) |
文件与目录管理命令
这些命令用于对服务器上的文件和目录进行重命名、删除等操作。
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
delete |
Delete | 删除服务器上的一个文件。 | delete oldfile.log |
mdelete |
Multiple Delete | 删除服务器上的多个文件,可以使用通配符。 | mdelete *.tmp |
rename |
Rename | 重命名服务器上的一个文件或目录。 | rename old_name.txt new_name.txt |
| Shell Escape | 执行本地计算机的命令。!ls 会列出你电脑当前目录下的文件。 |
!ls -l |
|
status |
Status | 显示当前 FTP 连接的状态,包括传输模式、是否开启 hash 等。 |
status |
帮助与信息命令
| 命令 | 全称 | 说明 | 示例 |
|---|---|---|---|
help / |
Help / ? | 获取 FTP 命令的帮助信息,可以指定某个命令来获取该命令的详细说明。 | help get 或 ? put |
| Shell | 执行本地系统的命令。 | !dir (Windows) 或 !ls (Linux/macOS) |
实际操作示例
下面是一个完整的 FTP 会话示例,展示了从连接到下载文件的完整流程。

# 1. 启动 FTP 并连接到服务器 $ ftp ftp.example.com Connected to ftp.example.com. 220 (vsFTPd 3.0.3) Name (ftp.example.com:your_local_user): anonymous 331 Please specify the password. Password: # 这里输入你的邮箱地址 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> # 2. 查看当前目录和文件 ftp> pwd 257 "/home/ftp" ftp> dir drwxr-xr-x 2 0 0 4096 Jan 01 12:00 pub -rw-r--r-- 1 0 0 1234 Jan 01 12:00 welcome.msg 226 Directory send OK. # 3. 进入 pub 目录 ftp> cd pub 250 Directory successfully changed. # 4. 查看本地目录 ftp> !ls # 本地电脑的文件列表会显示在这里 # 5. 切换到二进制传输模式(非常重要!) ftp> binary 200 Switching to binary mode. # 6. 下载一个文件 ftp> get important_file.zip local: important_file.zip remote: important_file.zip 227 Entering Passive Mode (192,168,1,100,12,34) 150 Opening BINARY mode data connection for important_file.zip (12345 bytes). 226 File send OK. 12345 bytes received in 0.05 secs (234.5 Kbytes/sec) ftp> # 7. 查看传输状态 ftp> status Connected to ftp.example.com. Wireless network. Mode: write; Type: binary; Form: non-print; Structure: file Verbose: off. Bell: off. Prompting: on. Hash mark printing: off. Use of PORT cmds: on. Only: off. Case: off. CR stripping: off. UTF8: off. # 8. 退出 FTP ftp> bye 221 Goodbye.
重要提示
-
安全性:FTP 协议以明文传输用户名和密码,非常不安全,在现代应用中,强烈建议使用其安全版本:
- SFTP (SSH File Transfer Protocol):基于 SSH 协议,通过加密通道传输,端口 22。
- FTPS (FTP Secure):FTP over SSL/TLS,对 FTP 流量进行加密,端口 21 (显式) 或 990 (隐式)。 如果可能,请优先使用 SFTP 或 FTPS。
-
被动模式:在许多网络环境中(特别是有防火墙或 NAT 的情况下),需要使用被动模式 (
passive) 来建立数据连接,在被动模式下,由客户端发起数据连接,而不是服务器,如果文件传输卡住,可以尝试passive命令。 -
本地命令与远程命令:请务必区分
lcd(本地目录切换) 和cd(远程目录切换),一个常见的错误是忘记lcd,导致文件上传到了错误的位置。

