使用 ftp 命令(最基础,但交互式)
ftp 是一个非常经典、几乎在所有 Linux 发行版上都预装的 FTP 客户端,它的特点是功能全面,但交互式操作可能对新手来说稍显复杂。

安装 ftp 客户端
ftp 已经默认安装,如果没有,可以使用以下命令安装:
- 基于 Debian/Ubuntu 的系统:
sudo apt-get update sudo apt-get install ftp
- 基于 RHEL/CentOS/Fedora 的系统:
sudo yum install ftp
连接到 FTP 服务器
在终端中输入以下命令,将 ftp.example.com 替换为你的 FTP 服务器地址:
ftp ftp.example.com
系统会提示你输入用户名和密码:
Name (ftp.example.com:your_local_username): your_ftp_username
331 Please specify the password.
Password:
输入密码后,如果认证成功,你会看到 ftp> 提示符。

上传文件
连接成功后,使用 put 或 mput 命令上传文件。
-
上传单个文件 (
put): 假设你要上传当前目录下的local_file.txt到服务器的/remote/directory/目录:# (可选) 切换到服务器上的目标目录 cd /remote/directory/ # 上传文件 put local_file.txt
你也可以在上传时重命名文件:
put local_file.txt remote_file.txt
-
上传多个文件 (
mput):mput(multiple put) 可以一次性上传多个文件,通常配合通配符使用。
(图片来源网络,侵删)# 上传所有 .txt 文件 mput *.txt
系统会逐个询问你是否要上传每个文件,输入
y确认。
常用 FTP 命令
ls: 列出服务器当前目录下的文件。cd <dir>: 切换服务器上的目录。lcd <dir>: 切换你本地机器上的目录。get <file>: 从服务器下载单个文件。mget <files>: 从服务器下载多个文件。- 执行本地 shell 命令。
!ls可以查看本地当前目录的文件。 help: 获取所有可用命令的帮助。bye或quit: 退出 FTP 会话。
使用 lftp 命令(功能强大,推荐)
lftp 是一个功能非常强大的文件传输客户端,它支持 FTP、FTPS、SFTP、HTTP 等多种协议,它的优点是支持后台传输、多线程、镜像同步,并且命令语法更接近 bash,用户体验更好。
安装 lftp
# Debian/Ubuntu sudo apt-get install lftp # RHEL/CentOS/Fedora sudo yum install lftp
连接并上传文件
lftp 的强大之处在于可以直接在命令行中指定用户名、密码和服务器地址,实现一键登录。
-
基本用法:
lftp -u your_ftp_username,ftp_password ftp.example.com
连接成功后,你会看到
lftp ftp.example.com:/>提示符。 -
上传单个文件:
# 登录后,使用 put 命令 put local_file.txt
-
上传整个目录:
lftp可以轻松地递归上传整个目录及其所有内容。# 假设你要上传名为 my_project 的目录 mirror -R ./my_project /remote/directory/
mirror: 用于同步目录。-R: 表示反向同步,即从本地同步到远程(上传),如果不加-R,则是从远程同步到本地(下载)。
-
直接在命令行中执行操作(更便捷): 你甚至可以不用进入
lftp交互式环境,直接在命令行中完成所有操作。# 格式: lftp -u <user>,<pass> <host> -e "<commands>; bye" lftp -u your_ftp_username,ftp_password ftp.example.com -e "put local_file.txt; bye"
这个命令会自动登录,上传
local_file.txt,然后立即退出,非常适合在 Shell 脚本中使用。
使用 ncftp 命令(用户友好)
ncftp 是 ftp 的一个增强版,它提供了更友好的用户界面,例如支持命令历史记录、自动补全、更清晰的上传/下载进度显示等。
安装 ncftp
# Debian/Ubuntu sudo apt-get install ncftp # RHEL/CentOS/Fedora sudo yum install ncftp
连接并上传文件
-
连接服务器:
ncftp ftp.example.com
然后输入用户名和密码。
-
上传文件: 连接成功后,使用
put或mput命令,用法与ftp类似,但体验更好。# 上传单个文件 put local_file.txt # 上传多个文件 mput *.log
ncftp在上传时会显示一个漂亮的进度条。
使用图形化工具(适合桌面用户)
如果你在使用 Linux 桌面环境(如 Ubuntu, Fedora),你可以直接使用文件管理器来操作 FTP 服务器,非常直观。
- 打开你的文件管理器(如 Nautilus, Dolphin, Thunar)。
- 在地址栏输入
ftp://<你的FTP服务器地址>,然后按回车。 - 系统会弹出对话框,要求你输入用户名和密码。
- 登录成功后,文件管理器会像浏览本地文件夹一样显示 FTP 服务器上的文件。
- 你只需将本地文件或文件夹直接拖拽到 FTP 窗口中即可完成上传。
安全性提醒:FTP vs. SFTP/FTPS
标准的 FTP 协议在传输所有数据(包括用户名和密码)时都是明文的,非常不安全,在生产环境中,强烈建议使用更安全的替代方案:
-
SFTP (SSH File Transfer Protocol): 基于 SSH 协议,通过加密通道传输所有数据,它使用的是
22端口。- Linux 上传文件到 SFTP 服务器,最常用的命令是
scp或sftp。 scp示例 (简单上传):# scp 本地文件 用户名@服务器地址:远程路径 scp local_file.txt your_username@sftp.example.com:/remote/directory/
sftp示例 (交互式,功能更丰富):sftp your_username@sftp.example.com # 登录后,put, get, cd, ls 等命令用法与 ftp 类似 sftp> put local_file.txt
- Linux 上传文件到 SFTP 服务器,最常用的命令是
-
FTPS (FTP Secure): 在标准的 FTP 基础上增加了 SSL/TLS 加密层,它使用
990端口。- 如果你的 FTP 服务器支持 FTPS,你可以配置
lftp或FileZilla等客户端使用ftps://协议进行连接。
- 如果你的 FTP 服务器支持 FTPS,你可以配置
总结与推荐
| 方法 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
ftp |
系统预装,功能全面 | 交互式繁琐,不安全 | 简单、一次性的任务,或在不支持其他工具的旧系统上。 |
lftp |
功能最强大,支持后台、多线程、脚本化 | 需要额外安装 | 强烈推荐,适合所有场景,尤其是需要自动化、批量上传或目录同步的场景。 |
ncftp |
用户友好,有进度条 | 需要额外安装 | 适合喜欢在命令行操作但又觉得 ftp 太简陋的用户。 |
| 图形化工具 | 直观,无需记命令 | 需要桌面环境 | 适合 Linux 桌面用户,进行少量文件的手动拖拽操作。 |
scp/sftp |
非常安全,基于 SSH | 服务器需启用 SSH 服务 | 生产环境首选,只要服务器支持,就应优先使用 SFTP。 |
对于绝大多数现代 Linux 用户和服务器管理任务,首选 lftp 进行 FTP/FTPS 传输,或者直接使用 scp/sftp 进行安全的文件传输。
