菜鸟科技网

FTP命令有哪些?新手怎么学?

FTP 命令使用教程

FTP (File Transfer Protocol,文件传输协议) 是一种用于在网络上客户端和服务器之间进行文件传输的标准协议,尽管现在有更安全、更方便的替代方案(如 SFTP),但由于其简单和广泛的支持,FTP 仍然在一些特定场景下被使用。

FTP命令有哪些?新手怎么学?-图1
(图片来源网络,侵删)

什么是 FTP?它的工作原理

FTP 是一种客户端-服务器模型,你需要一个 FTP 服务器来存储文件,以及一个 FTP 客户端(比如你的电脑上运行的命令行工具)来连接并操作这些文件。

工作模式:

  1. 控制连接 (Control Connection):客户端和服务器之间建立一个持久连接,用于发送命令(如 ls, get)和接收服务器状态。
  2. 数据连接 (Data Connection):当实际传输文件(如 getput)时,客户端和服务器会建立一个临时的数据连接来传输文件内容,传输完成后,该连接关闭。

如何连接到 FTP 服务器?

在命令行中,使用 ftp 命令,后跟服务器的地址或 IP。

ftp ftp.example.com

连接后,服务器通常会提示你输入用户名和密码。

FTP命令有哪些?新手怎么学?-图2
(图片来源网络,侵删)
Name (ftp.example.com:your_username): your_username
331 Password required for your_username.
Password:  (输入你的密码,输入时不会显示任何字符)

如果连接成功,你会看到类似 230 User logged in. 的欢迎信息,并进入 ftp> 命令提示符。


核心 FTP 命令详解

以下是最常用和最重要的 FTP 命令,分为几类以便记忆。

连接与认证命令

命令 描述 示例
open <host> [port] 打开到指定主机和端口的连接。 open ftp.server.com 21
close 关闭当前连接,但保持 FTP 程序运行。 close
byequit 退出 FTP 程序,并关闭所有连接。 bye
user <username> 在已连接但未登录时,切换用户或重新登录。 user admin
pass <password> 提供密码。 pass mysecretpassword

目录导航命令

命令 描述 示例
pwd Print Working Directory,显示当前所在的服务器目录。 pwd (输出: /home/user)
cd <path> Change Directory,切换到服务器上的指定目录。 cd /public_html/images
ls LiSt,列出当前目录下的文件和子目录。 ls
dir DIRectory,比 ls 更详细的列表,显示文件权限、大小、日期等。 dir
执行本地 shell 命令。 !ls (列出本地电脑当前目录的文件)

文件传输命令

这是 FTP 的核心功能,在传输前,最好使用 lsdir 查看文件名是否正确。

命令 描述 示例
get <remote_file> [local_file] GET,从服务器下载一个文件到本地,可以指定本地文件名。 get myfile.txt (下载为 myfile.txt)
get data.zip backup.zip (下载为 backup.zip)
mget <files...> Multiple GET,从服务器下载多个文件,可以使用通配符 。 mget *.jpg (下载所有 jpg 文件)
put <local_file> [remote_file] PUT,从本地上传一个文件到服务器,可以指定远程文件名。 put report.doc (上传为 report.doc)
put photo.jpg new_photo.jpg (上传为 new_photo.jpg)
mput <files...> Multiple PUT,从本地上传多个文件,可以使用通配符 。 mput *.log (上传所有 log 文件)
ascii 设置传输模式为 ASCII(文本模式),适用于 .txt, .html, .css, .js 等文件。 ascii
binary 非常重要! 设置传输模式为二进制(Binary),适用于图片、视频、压缩包、程序等所有非文本文件。如果不确定,请始终使用 binary binary

文件与目录管理命令

命令 描述 示例
mkdir <dirname> MaKe DIRectory,在服务器上创建一个新目录。 mkdir new_folder
rmdir <dirname> ReMove DIRectory,删除服务器上的一个空目录。 rmdir empty_folder
delete <filename> DELETE,删除服务器上的一个文件。 delete old_file.txt
rename <old_name> <new_name> RENAME,重命名服务器上的文件或目录。 rename old_name.txt new_name.txt
!mkdir <dirname> 在本地电脑上创建一个目录。 !mkdir local_projects

实战演练:一个完整的文件传输流程

假设我们要从 ftp.files.com 下载一个网站文件,并上传一个本地报告。

连接服务器

ftp ftp.files.com
Name (ftp.files.com:john): john
Password: **********
230 User logged in.
ftp>

查看服务器目录

ftp> pwd
257 "/home/john" is current directory.
ftp> dir
2025-10-27  10:00AM                   1234 index.html
2025-10-27  10:01AM                   5678 style.css
2025-10-27  10:02AM                  9999 images/
ftp>

切换到目标目录

ftp> cd images
250 Directory changed to /home/john/images
ftp> pwd
257 "/home/john/images" is current directory.
ftp>

下载图片文件

ftp> binary
200 Type set to I.
ftp> get logo.png
local: logo.png remote: logo.png
226 Transfer complete.
12345 bytes received in 0.05 secs (245.5 Kbytes/sec)
ftp>

切换回上级目录

ftp> cd ..
250 Directory changed to /home/john
ftp>

上传本地报告文件 在本地 shell 中创建一个文件(模拟):

# 在另一个终端窗口
echo "This is my report." > report.txt

然后回到 FTP 客户端,上传文件:

ftp> put report.txt
local: report.txt remote: report.txt
226 Transfer complete.
28 bytes sent in 0.01 secs (2.8 Kbytes/sec)
ftp>

查看上传后的结果

ftp> dir
2025-10-27  10:00AM                   1234 index.html
2025-10-27  10:01AM                   5678 style.css
2025-10-27  10:02AM                  9999 images/
2025-10-27  11:00AM                      28 report.txt  <-- 新文件
ftp>

退出 FTP

ftp> bye
221 Goodbye.

重要注意事项与安全警告

  1. 安全性极低:FTP 是明文传输协议,你的用户名、密码和传输的所有文件内容都以未加密的形式在网络中传输,极易被窃听。强烈不建议在公共网络或不信任的环境下使用 FTP。
  2. 更安全的替代方案
    • SFTP (SSH File Transfer Protocol):基于 SSH 协议,所有数据都是加密的,是目前最推荐的文件传输方式,它使用 sftp 命令,语法与 FTP 类似,但更安全。
    • SCP (Secure Copy):同样是基于 SSH,用于在主机间安全地复制文件。
    • WebDAV:基于 HTTP 的协议,可以通过浏览器或专用客户端访问,通常也支持 HTTPS 加密。
  3. 被动模式 vs 主动模式
    • 主动模式 (Active):服务器主动连接客户端的端口,如果客户端有防火墙,连接可能会失败。
    • 被动模式 (Passive):客户端和服务器协商,由客户端连接服务器的随机端口,这是目前更常用的模式,能更好地适应有防火墙的环境。
    • 在 FTP 客户端中,可以使用 passive 命令开启被动模式,active 命令开启主动模式,现代 FTP 客户端通常默认使用被动模式。

常见问题与解决方法

  • 问题Connection timed outNo route to host解决:检查服务器地址是否正确,服务器是否在线,网络是否通畅,如果是公司内网,可能防火墙阻止了连接。
  • 问题530 Login incorrect解决:检查用户名和密码是否输入正确,区分大小写。
  • 问题550 Permission denied解决:你尝试访问的文件或目录没有权限,请检查你的用户权限,或者联系服务器管理员。
  • 问题:文件传输后损坏或大小不对。 解决几乎总是因为传输模式设置错误! 在传输非文本文件(图片、压缩包等)之前,务必先执行 binary 命令

FTP 是一个强大但古老且不安全的工具,掌握它的命令对于维护旧系统或在特定环境下工作仍然有用,但在任何可能的情况下,请优先选择更现代、更安全的 SFTP,希望这份教程能帮助你快速上手 FTP 的基本操作。

分享:
扫描分享到社交APP
上一篇
下一篇