在Linux系统中上传文件有多种方法,具体取决于使用场景(本地/远程)、技术偏好(命令行/图形界面)及目标服务器类型,以下是详细指南:
命令行工具(高效且强大)
SCP(基于SSH的安全传输)
适用场景:本地与远程服务器间加密传输
步骤:
# 上传整个目录(加 -r 参数) scp -r /本地/目录/ 用户名@远程IP:/远程/目录/
示例:
scp ~/documents/report.txt user@192.168.1.10:/home/user/uploads/
SFTP(交互式安全传输)
适用场景:需交互式操作远程文件
步骤:
sftp 用户名@远程IP # 连接服务器 put /本地/文件路径 # 上传单个文件 put -r /本地/目录 # 上传目录 exit # 退出
Rsync(增量同步)
适用场景:大文件或需增量备份
命令:
rsync -avz /本地/目录/ 用户名@远程IP:/远程/目录/
参数说明:
-a
:归档模式(保留权限)-v
:显示进度-z
:压缩传输
图形界面工具(适合桌面用户)
文件管理器(GNOME/KDE等)
- 操作步骤:
- 打开文件管理器(如Nautilus、Dolphin)
- 地址栏输入:
- FTP:
ftp://用户名@服务器IP
- SFTP:
sftp://用户名@服务器IP
- FTP:
- 输入密码后,拖放文件到目标目录
FileZilla(跨平台FTP客户端)
步骤:
- 安装:
sudo apt install filezilla
(Debian/Ubuntu) - 打开后输入:
- 主机:
sftp://服务器IP
(推荐SFTP协议) - 用户名/密码
- 主机:
- 左侧选本地文件,右侧拖入远程目录
网络工具(HTTP/FTP场景)
cURL(HTTP/FTP上传)
适用场景:API接口或FTP服务器
示例命令:
# 通过FTP上传 curl -T 本地文件.txt ftp://服务器IP/路径/ --user 用户名:密码 # 通过HTTP POST上传 curl -F "file=@本地文件.jpg" http://网站.com/upload
FTP命令(基础FTP客户端)
步骤:
ftp 服务器IP # 连接 > 输入用户名/密码 > put 本地文件.txt # 上传文件 > mput *.png # 批量上传 > bye # 退出
云存储工具
AWS S3
aws s3 cp 本地文件 s3://桶名/路径/
Rclone(支持30+云服务)
rclone copy /本地/文件 远程配置名:桶名/路径
安全注意事项
- 优先加密协议:
- 用
SCP/SFTP
替代FTP
(明文传输风险)。
- 用
- 密钥认证:
- 使用SSH密钥登录:
scp -i ~/.ssh/密钥.pem 文件 用户@IP:/路径
- 使用SSH密钥登录:
- 权限管理:
- 检查远程目录权限:
chmod 700 目录
(仅所有者可写)
- 检查远程目录权限:
方法选择建议
场景 | 推荐工具 |
---|---|
快速传小文件 | SCP |
大文件/增量备份 | Rsync |
交互式操作 | SFTP/FileZilla |
网页API上传 | cURL |
云存储 | AWS CLI/Rclone |
引用说明:
- OpenSSH文档:
man scp
,man sftp
- Rsync官方指南:https://rsync.samba.org/documentation.html
- cURL用例:https://curl.se/docs/manpage.html
- 安全实践参考:NIST SP 800-123(服务器安全配置)
版权声明:本文基于Linux开源工具文档及行业最佳实践整理,转载请注明原始技术来源。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4440.html