CentOS 本地文件上传服务器:实用方法与关键细节
将本地计算机上的文件传输到远程的 CentOS 服务器,是系统管理、网站部署或应用维护中的基础操作,掌握几种高效可靠的上传方法,能显著提升工作效率,下面详细介绍常用技巧与注意事项。
SSH 安全通道:SCP(推荐首选)
SCP 基于 SSH 协议,加密传输数据,安全高效,是命令行环境下的理想选择。

基础上传命令:
scp /本地/文件/路径/文件名.txt 用户名@服务器IP地址:/远程/目标/目录/
- 示例:
scp ~/project/app.tar.gz admin@192.168.1.100:/opt/deploy/
- 示例:
上传整个目录(递归复制): 添加
-r参数scp -r /本地/目录/路径/ 用户名@服务器IP地址:/远程/目标/目录/
指定 SSH 端口: 如果服务器 SSH 端口不是默认的 22,使用
-P参数scp -P 2222 local_file.txt user@centos-server:/home/user/
关键优势:
- 加密传输: 保障数据安全,防止窃听。
- 简单直接: 一条命令完成文件或目录传输。
- 系统原生支持: Linux/macOS 开箱即用,Windows 用户可借助 PuTTY 的
pscp或 WinSCP。
Rsync:增量同步的利器
Rsync 不仅用于上传,更擅长在已有数据基础上进行增量同步,仅传输变化部分,节省带宽和时间。
基础上传命令:

rsync -avz /本地/文件/或目录/ 用户名@服务器IP地址:/远程/目标/目录/
-a: 归档模式,保留权限、时间戳等属性。-v: 显示详细传输信息。-z: 传输时压缩数据,提升速度。
常用进阶选项:
--progress: 显示实时传输进度。--delete: 删除目标目录中源目录不存在的文件(谨慎使用!)。-e "ssh -p 端口号": 指定非标准 SSH 端口。
典型应用场景:
- 网站代码更新部署。
- 定期备份数据到远程服务器。
- 需要保持本地与服务器目录高度一致的任务。
SFTP:交互式安全文件传输
SFTP 同样基于 SSH,提供类似 FTP 的交互式操作界面,适合需要浏览服务器目录、进行多文件管理的情况。
连接服务器:
sftp -oPort=端口号 用户名@服务器IP地址
(若端口是 22,可省略
-oPort)常用 SFTP 命令:

put 本地文件: 上传单个文件到当前远程目录。put localfile.txt/put localfile.txt remotefile.txt(重命名)
mput 本地文件*: 上传匹配通配符的多个文件。put -r 本地目录: 递归上传整个目录(部分 sftp 客户端支持)。cd 远程目录: 切换服务器工作目录。lcd 本地目录: 切换本地工作目录。ls/lls: 列出远程/本地当前目录文件。exit/bye: 退出 sftp。
优势:
- 可视化操作目录结构,方便复杂文件管理。
- 支持断点续传(依赖具体客户端实现)。
- 图形化工具(如 FileZilla, WinSCP)底层通常使用 SFTP 协议,提供直观体验。
图形化工具:FileZilla(跨平台之选)
对于习惯图形界面的用户,FileZilla 是连接 CentOS 服务器的优秀免费工具。
设置连接:
- 主机: 服务器 IP 地址。
- 用户名: SSH 用户名。
- 密码: SSH 密码(或使用密钥)。
- 端口: SSH 端口(默认 22)。
- 协议: 选择 "SFTP - SSH File Transfer Protocol"。
使用:
- 左侧窗口(本地站点)浏览本地文件。
- 右侧窗口(远程站点)浏览服务器文件。
- 直接拖放文件或目录即可上传/下载。
特殊工具:lrzsz (仅适用简单场景)
如果服务器已安装 lrzsz 包(yum install lrzsz),可通过 rz 命令接收本地文件。
- 在服务器终端执行:
rz
- 本地会弹出文件选择窗口,选择文件后开始上传至服务器当前工作目录。
- 局限性:
- 速度较慢,不适合大文件。
- 无进度显示。
- 通常只用于临时上传小文件,不推荐作为主要方式。
关键注意事项与常见问题
- 权限问题: 最常见的上传失败原因。
- 确保登录用户对目标目录有写入权限 (
w)。 - 使用
ls -ld /目标/目录检查权限和所有者。 - 必要时使用
chmod或chown调整(需要管理员权限)。
- 确保登录用户对目标目录有写入权限 (
- 目录存在性: 上传前,确认目标目录在服务器上已经存在,SCP/rsync 不会自动创建不存在的中间目录(除非使用 rsync 的
-R或提前创建好)。 - 存储空间: 上传前检查服务器磁盘空间 (
df -h)。 - 防火墙/SELinux:
- 防火墙: 确保服务器防火墙放行了使用的端口(默认 SSH/SFTP 是 22,rsync daemon 模式通常是 873),命令
firewall-cmd --list-ports或iptables -L -n。 - SELinux: 如果上传后文件访问异常(如 Web 无法读取),检查 SELinux 上下文 (
ls -Z) 或临时禁用 SELinux 测试 (setenforce 0),但务必在生产环境谨慎配置正确策略。
- 防火墙: 确保服务器防火墙放行了使用的端口(默认 SSH/SFTP 是 22,rsync daemon 模式通常是 873),命令
- 路径分隔符: Linux 使用正斜杠 ,注意与 Windows 反斜杠
\区分。 - 文件名特殊字符: 尽量避免在文件名中使用空格、中文或特殊符号,如需使用,用引号括起来(如
scp "my file.txt" user@server:/path/)。
个人观点
掌握 SCP 和 Rsync 的命令行操作,是高效管理 CentOS 服务器的基本功,尤其在自动化脚本中不可或缺,对于日常临时上传或偏好图形界面的用户,FileZilla 这类 SFTP 工具提供了极佳的体验,至于 lrzsz,仅适合在极其受限的环境下应急使用,服务器管理就像精密的操作,文件传输是其中最频繁的脉搏,选择合适工具并理解其细节,能让每一次数据流动都稳定可靠。
