使用 ftp 命令(最经典、最常用)
ftp 是 Linux 系统自带的 FTP 客户端,功能强大,几乎所有发行版都预装了。

基本连接
打开你的终端,输入以下命令:
ftp ftp.example.com
将 ftp.example.com 替换成你要连接的 FTP 服务器的地址或 IP。
常用交互命令
连接成功后,会提示你输入用户名和密码,登录后,你将进入 ftp> 提示符下,可以使用以下命令:
| 命令 | 功能 | 示例 |
|---|---|---|
ls |
列出服务器当前目录下的文件和文件夹 | ls |
dir |
列出文件详细信息(类似 ls -l) |
dir |
cd <目录名> |
切换到服务器上的指定目录 | cd public_html |
lcd <本地目录> |
切换到你本地机器(你的电脑)上的目录 | lcd /home/user/my_downloads |
get <远程文件> |
从服务器下载一个文件到当前本地目录 | get myfile.txt |
put <本地文件> |
从当前本地目录上传一个文件到服务器 | put report.docx |
mget <文件名模式> |
批量下载多个匹配模式的文件 | mget *.jpg |
mput <文件名模式> |
批量上传多个匹配模式的文件 | mput *.log |
| 执行本地 shell 命令 | !ls (查看本地当前目录) |
|
bin |
切换到二进制传输模式(强烈推荐用于传输非文本文件) | bin |
ascii |
切换到 ASCII 文本模式 | ascii |
prompt |
关闭/打开交互式提示(在 mget/mput 时很有用) |
prompt (关闭后,mget 所有文件都不会询问) |
help |
显示所有可用命令的帮助 | help |
bye 或 quit |
退出 FTP 连接 | bye |
示例会话
# 1. 连接到服务器 $ ftp ftp.example.com Connected to ftp.example.com. 220 (vsFTPd 3.0.3) Name (ftp.example.com:user): myusername 331 Please specify the password. Password: ******** # 密码不会显示 230 Login successful. # 2. 查看服务器文件 ftp> dir -rw-r--r-- 1 0 0 1234 Jan 10 12:00 file1.txt drwxr-xr-x 2 0 0 4096 Jan 10 12:01 images ftp> # 3. 切换到本地下载目录 ftp> lcd ~/Downloads Local directory now /home/user/Downloads # 4. 切换到服务器上的 images 目录 ftp> cd images 250 Directory successfully changed. # 5. 下载 images 目录下的所有图片文件 ftp> prompt Interactive mode off. ftp> mget *.jpg mget image1.jpg? y local: image1 remote: image1 226 File send OK. ... ftp> # 6. 退出 ftp> bye 221 Goodbye.
使用 lftp 命令(功能更强大的命令行工具)
lftp 被认为是 ftp 的一个增强版,它支持多协议(FTP, SFTP, HTTP 等)、后台任务、队列、断点续传等功能,是许多 Linux 用户的首选。

安装 lftp
如果你的系统没有预装,可以使用包管理器安装:
- Debian / Ubuntu:
sudo apt update sudo apt install lftp
- CentOS / RHEL / Fedora:
sudo yum install lftp # 或者 (对于较新版本) sudo dnf install lftp
基本使用
lftp 的语法更直观,并且可以一次性指定主机、用户名和密码。
lftp -u username,ftp://ftp.example.com
或者分步操作:
$ lftp ftp.example.com lftp ftp.example.com:~> user username Password: ******** lftp ftp.example.com:~>
lftp 的优势命令
| 命令/功能 | 功能 | 示例 |
|---|---|---|
mirror |
同步目录(非常强大!) | mirror -R (上传本地目录到服务器) mirror (下载服务器目录到本地) |
pget |
多线程下载,可以加速大文件下载 | pget -n 10 largefile.zip (用10个线程下载) |
queue |
将任务加入队列,稍后执行 | get file1.zip; get file2.zip; queue |
set |
设置参数,如 set ftp:ssl-allow yes 启用 FTPS |
set ftp:ssl-allow yes |
| 执行本地命令 | !ls -l |
|
exit 或 bye |
退出 | exit |
示例会话
# 1. 连接并登录 $ lftp -u myuser,pass ftp.example.com lftp myuser@ftp.example.com:~> # 2. 直接下载一个文件,并显示进度条 lftp myuser@ftp.example.com:~> pget -n 5 largefile.zip 5: [RX] 50% 100MB 10.0MB/s eta 10s # 3. 同步整个目录到本地 lftp myuser@ftp.example.com:~> mirror /public_html /home/user/my_backup lftp myuser@ftp.example.com:~> exit
使用图形界面工具
如果你不习惯使用命令行,或者更喜欢拖拽操作,图形界面工具是更好的选择。

文件管理器集成
现代的 Linux 桌面环境(如 GNOME, KDE, XFCE)的文件管理器通常都支持直接连接 FTP 服务器。
-
GNOME Files (Nautilus):
- 打开文件管理器。
- 在左侧侧边栏点击“连接到服务器”。
- 在服务类型中选择 “FTP”。
- 输入服务器地址、用户名、密码。
- 点击“连接”。
- 连接成功后,FTP 服务器的文件会像本地磁盘一样显示,你可以直接拖拽文件进行上传下载。
-
Dolphin (KDE):
- 在地址栏直接输入
ftp://username:password@ftp.example.com然后按回车。 - 或者通过侧边栏的“网络” -> “连接到服务器”进行设置。
- 在地址栏直接输入
专用 FTP 客户端软件
这些软件功能更专业,通常带有书签管理、多窗口、同步等功能。
- FileZilla: 跨平台的免费 FTP 客户端,非常流行,功能全面。
- gFTP: 一个经典的 Linux 原生 FTP 客户端。
安全性提醒:使用 SFTP 替代 FTP
传统的 FTP 协议在传输数据时,用户名和密码都是明文传输的,非常不安全,现在更推荐使用 SFTP (SSH File Transfer Protocol)。
- SFTP 运行在 SSH 协议之上,所有传输(包括登录信息)都是加密的。
- SFTP 和 FTP 是完全不同的协议,端口也不同(FTP 默认 21,SFTP 默认 22)。
- 很多 FTP 服务器也同时提供 SFTP 服务。
如何连接 SFTP?
使用 lftp 或 sftp 命令可以轻松连接 SFTP 服务器。
# 使用 lftp 连接 SFTP lftp -u username,sftp://sftp.example.com # 使用 sftp 命令连接 (语法类似 ftp) sftp username@sftp.example.com
强烈建议:如果服务器支持,请优先选择 SFTP 来保证数据安全。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
ftp 命令 |
系统自带,无需安装,功能基础 | 功能有限,交互繁琐,不安全 | 快速连接一个不安全的旧服务器,应急处理。 |
lftp 命令 |
功能强大(断点续传、多线程、队列、同步) | 需要单独安装 | 日常使用、脚本自动化、需要高效传输文件的用户。 |
| 图形界面 | 操作直观,支持拖拽 | 依赖桌面环境,不适合服务器/脚本 | 桌面用户,不熟悉命令行,喜欢可视化操作。 |
| SFTP | 安全,加密传输 | 服务器需支持SSH | 所有现代场景下的首选,特别是涉及敏感信息时。 |
对于大多数现代 Linux 用户,我的建议是:
- 首选
lftp:因为它功能强大且安全(可以很好地支持 FTPS/SFTP)。 - 桌面用户:可以直接使用文件管理器或 FileZilla。
- 务必使用 SFTP:如果服务器提供,请放弃不安全的 FTP。
