目录
- FTP 简介
- 连接与登录
- 目录操作
- 文件操作
- 文件传输
- 权限与管理
- 高级选项
- 常用命令速查表
- 重要提示
FTP 简介
FTP 是一种用于在客户端和服务器之间传输文件的标准网络协议,它使用两个连接:
- 控制连接:用于发送命令(如
ls, get),端口 21。
- 数据连接:用于实际传输文件数据,端口 20(主动模式)或随机端口(被动模式)。
连接与登录
这是使用 FTP 的第一步。
| 命令 |
描述 |
示例 |
ftp [hostname] |
打开 FTP 连接到指定的主机名或 IP 地址。 |
ftp ftp.example.com 或 ftp 192.168.1.100 |
open [hostname] |
在 FTP 提示符下,打开与指定主机的连接。 |
open ftp.example.com |
user [username] |
登录时指定用户名。 |
user myuser |
pass [password] |
输入密码。 |
pass mypassword |
login |
使用当前用户名和密码进行登录。 |
login |
quit / bye |
关闭 FTP 连接并退出 FTP 客户端。 |
quit |
close |
关闭与当前服务器的连接,但不退出 FTP 客户端。 |
close |
ls |
列出当前远程目录下的文件和子目录列表(详细列表)。 |
ls |
|
执行本地系统的命令。 |
!ls (列出本地当前目录的文件) |
目录操作
在远程服务器上浏览和管理目录。
| 命令 |
描述 |
示例 |
pwd |
显示当前所在的远程工作目录(Print Working Directory)。 |
pwd |
cd [directory] |
切换到指定的远程目录。 |
cd /public_html/images |
cdup |
切换到上一级目录。 |
cdup |
lcd [directory] |
切换到本地的(客户端)工作目录。 |
lcd /home/user/my_local_files |
mkdir [directory] |
在远程服务器上创建一个新的目录。 |
mkdir new_folder |
rmdir [directory] |
删除一个空的远程目录。 |
rmdir empty_folder |
文件操作
在远程服务器上管理文件。
| 命令 |
描述 |
示例 |
delete [filename] |
删除一个远程文件。 |
delete old_file.txt |
rename [oldname] [newname] |
重命名一个远程文件或目录。 |
rename old.txt new.txt |
|
执行本地系统的命令。 |
!ls (列出本地当前目录的文件) |
文件传输 (核心功能)
这是 FTP 最核心的功能,用于上传和下载文件。
设置传输模式
| 命令 |
描述 |
示例 |
ascii |
设置传输模式为 ASCII(文本文件),适用于 .txt, .html, .css, .js 等文件。 |
ascii |
binary |
设置传输模式为 Binary(二进制)。强烈推荐,适用于所有非文本文件,如图片、视频、压缩包、可执行文件等。 |
binary |
重要提示:在传输任何非纯文本文件之前,必须使用 binary 命令,否则文件会损坏。
下载文件 (从服务器到本地)
| 命令 |
描述 |
示例 |
get [remote_file] |
下载一个远程文件到本地当前目录,文件名不变。 |
get report.pdf |
get [remote_file] [local_file] |
下载远程文件并保存为本地指定的文件名。 |
get data.csv local_data.csv |
mget [files] |
批量下载多个文件,可以使用通配符 。 |
mget *.jpg (下载所有 jpg 文件) |
上传文件 (从本地到服务器)
| 命令 |
描述 |
示例 |
put [local_file] |
上传一个本地文件到远程当前目录,文件名不变。 |
put my_photo.jpg |
put [local_file] [remote_file] |
上传本地文件并保存为远程指定的文件名。 |
put notes.txt server_notes.txt |
mput [files] |
批量上传多个文件,可以使用通配符 。 |
mput *.zip (上传所有 zip 文件) |
权限与管理
| 命令 |
描述 |
示例 |
chmod [mode] [file] |
修改远程文件或目录的权限(Linux/Unix 系统有效)。 |
chmod 755 script.sh |
passive |
切换到被动传输模式。现代网络环境(如防火墙/NAT)下推荐使用。 |
passive |
active |
切换到主动传输模式。 |
active |
高级选项
| 命令 |
描述 |
示例 |
hash |
开启或关闭哈希打印,开启后,每传输 1024 字节会显示一个 符号,用于显示传输进度。 |
hash (开启), hash (再次输入关闭) |
prompt |
开启或关闭交互式提示,在 mget 或 mput 时,关闭此选项可以避免对每个文件都进行确认。 |
prompt off |
status |
显示当前 FTP 会话的连接状态和设置。 |
status |
system |
显示远程 FTP 服务器的操作系统类型。 |
system |
常用命令速查表
| 分类 |
命令 |
简要说明 |
| 连接 |
open, close, quit |
连接、关闭、退出 |
| 目录 |
pwd, cd, lcd, ls |
显示/切换远程/本地目录,列表 |
| 文件 |
delete, rename, mkdir, rmdir |
删除、重命名、创建、删除目录 |
| 传输 |
get, put, mget, mput |
下载、上传、批量下载/上传 |
| 模式 |
binary, ascii |
必设,二进制/文本传输模式 |
| 状态 |
status, hash, prompt |
查看状态、显示进度、交互提示 |
| 其他 |
, passive |
执行本地命令、切换被动模式 |
重要提示
- 安全性:FTP 是一种不安全的协议,因为用户名和密码都是明文传输的,在可能的情况下,请使用更安全的替代方案,如 SFTP (SSH File Transfer Protocol) 或 FTPS (FTP over SSL/TLS),它们通过 SSH 或 SSL/TLS 加密了整个传输过程。
binary 模式:这是初学者最容易犯的错误,忘记切换到 binary 模式是导致图片、软件等文件下载后无法使用或损坏的最常见原因。
- 被动模式:如果你在家庭或公司网络(有防火墙)中使用 FTP,连接可能会失败,这时,请使用
passive 命令,让客户端主动连接服务器的随机端口,而不是让服务器主动连接客户端的端口 20。
- GUI 客户端:对于普通用户,使用图形界面的 FTP 客户端(如 FileZilla, WinSCP, Cyberduck)会更方便,它们可视化了所有操作,并自动处理了
binary 模式和被动模式等问题。
希望这份详细的指南对您有帮助!