在Ubuntu系统中,使用命令行进行FTP文件上传是服务器管理和文件传输的常见需求,FTP(File Transfer Protocol)是一种标准的网络协议,用于在客户端和服务器之间传输文件,Ubuntu作为广泛使用的Linux发行版,提供了多种命令行工具来实现FTP上传,其中最常用的是ftp、lftp以及更安全的sftp(基于SSH),以下将详细介绍这些工具的使用方法、操作步骤及注意事项。

使用ftp命令上传文件
ftp是Ubuntu系统自带的FTP客户端,支持基本的FTP操作,首先需要确保系统已安装ftp包,若未安装可通过以下命令安装:
sudo apt update sudo apt install ftp
连接FTP服务器
使用ftp命令连接到服务器的基本语法为:
ftp [服务器地址] [端口号]
连接到IP地址为168.1.100的FTP服务器:
ftp 192.168.1.100
若服务器使用非标准端口(如2121),需指定端口:

ftp 192.168.1.100 2121
连接后需输入用户名和密码进行身份验证,若服务器支持匿名登录,用户名可输入anonymous,密码留空或使用邮箱地址。
上传文件
成功连接后,可通过以下命令上传文件:
- 单文件上传:使用
put命令,语法为put [本地文件路径] [远程文件名]。put /home/user/localfile.txt remotefile.txt
- 多文件上传:使用
mput命令,支持通配符,例如上传所有.txt文件:mput *.txt
执行时会逐个确认是否上传,输入
y确认。
常用操作命令
- 切换远程目录:
cd [目录名] - 查看远程目录内容:
ls或dir - 查看本地目录内容:
!ls(本地命令需加前缀) - 切换本地目录:
lcd [本地目录路径] - 显示传输模式:
passive(切换被动模式,建议开启以避免防火墙问题) - 退出FTP:
bye或quit
示例完整流程
ftp 192.168.1.100 # 输入用户名和密码 cd /remote/upload/dir lcd /local/files/dir put file1.txt mput *.log bye
使用lftp命令上传文件
lftp是功能更强大的FTP客户端,支持多线程、断点续传和脚本操作,推荐用于大文件或批量传输,安装命令:

sudo apt install lftp
连接服务器
lftp ftp://[用户名]:[密码]@[服务器地址][:端口]
lftp ftp://user:pass@192.168.1.100:2121
或分步连接:
lftp 192.168.1.100 lftp user@192.168.1.100 # 输入密码
上传文件
- 单文件上传:
put [本地文件] [远程文件] - 多文件上传:
mput [文件模式],mput *.zip
- 断点续传:若传输中断,重新执行
put或mput会自动续传。
高级功能
- 后台传输:
put -c file &(-c表示校验校验和) - 同步目录:
mirror -R [本地目录] [远程目录](-R表示本地到远程) - 显示传输进度:
set net:limit-rate 102400(限制带宽,单位为字节)
示例完整流程
lftp ftp://user:pass@192.168.1.100 cd /remote/dir mirror -R /local/project . bye
使用sftp安全上传文件
sftp是基于SSH的安全文件传输协议,加密数据传输,适合敏感场景,Ubuntu默认安装OpenSSH客户端,无需额外安装。
连接服务器
sftp [用户名]@[服务器地址]
sftp user@192.168.1.100
上传文件
- 单文件上传:
put [本地文件] [远程文件] - 多文件上传:
put -r [本地目录](递归上传目录)
常用命令
- 切换目录:
cd(远程)、lcd(本地) - 列表文件:
ls(远程)、lls(本地) - 创建目录:
mkdir [目录名] - 下载文件:
get [远程文件]
示例完整流程
sftp user@192.168.1.100 cd /upload/dir lcd /local/files put -r project_folder exit
工具对比与选择
以下是三种工具的对比表格:
| 特性 | ftp | lftp | sftp |
|---|---|---|---|
| 安全性 | 低(明文传输) | 低(需配合TLS/SSL) | 高(SSH加密) |
| 功能丰富度 | 基础 | 高(多线程、断点续传) | 中等 |
| 适用场景 | 内网非敏感文件 | 大文件、批量传输 | 敏感数据、公网传输 |
| 安装需求 | 系统自带 | 需安装lftp | 系统自带(OpenSSH) |
注意事项
- 安全性:避免在公网使用
ftp,优先选择sftp或FTPS(FTP over SSL)。 - 权限问题:确保登录用户对远程目录有写权限,本地文件有读权限。
- 防火墙配置:若使用被动模式(
passive),需确保FTP服务器的被动端口范围在防火墙中开放。 - 脚本化操作:
lftp支持脚本执行,例如lftp -f script.txt可包含批量上传命令。
相关问答FAQs
Q1: 如何在FTP上传时显示实时传输进度?
A: 使用lftp时,可通过set net:limit-rate 0取消带宽限制,传输进度会实时显示,若需更详细进度,可安装pv工具结合管道实现,pv localfile | ftp -n server.com(需在FTP脚本中配置put命令)。
Q2: 上传大文件时如何避免因网络中断导致传输失败?
A: 推荐使用lftp的断点续传功能,传输中断后重新执行put命令会自动从断点继续,若使用sftp,可通过-a参数(追加模式)或rsync工具实现类似功能,rsync -avz --partial localfile user@server:/remote/dir。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/479576.html<
