把本地文件传到Linux服务器,最通用且稳妥的方案是使用内置的scp命令,公网环境配合指定端口即可实现安全传输;日常少量文件用它最省事,批量或大目录建议改用rsync做增量同步,想要可视化操作就选WinSCP、XFTP这类图形化工具。
本地上传文件这件事,看起来只是“把文件挪个位置”,但实际涉及协议、端口、权限、工具选择几个环节,下面把常用方法和踩坑点按优先级拆开讲。
怎么上传文件到linux服务器?先确认这三件事
很多新手卡在第一步,不是命令不会写,而是信息没凑齐,上传文件到Linux服务器前,必须确认三样东西:服务器IP地址、登录用户名、密码或密钥文件,如果是云服务器(比如简米云、酷番云),还要确保安全组规则放行了对应端口。
判断该用哪种协议
- SFTP:基于SSH的加密文件传输协议,走22端口,最通用。
- SCP:同样是基于SSH的传输方式,语法简单,适合单文件。
- 传统FTP:明文传输,21端口,安全性差,现在多数场景已被SFTP取代。
行业共识认为,只要服务器开了SSH服务,SFTP和SCP就能直接用,不需要额外安装服务端。
本地环境自带哪些传输工具
- Windows 10及以上:系统自带
scp命令,也支持PowerShell直接调用。 - macOS和主流Linux发行版:默认自带
scp和sftp命令,无需安装。 - 只装了图形界面的Windows:可以安装WinSCP、XFTP、FinalShell等客户端。
linux服务器上传文件命令详解:scp与rsync实战
命令行上传是Linux场景下最可靠的方式,尤其适合无图形界面的服务器。scp适合传单个或少量文件,rsync适合传大目录和增量同步。
scp命令上传文件到指定端口
从本地上传单个文件到服务器的标准写法:
scp /本地路径/文件名.zip root@服务器IP:/目标目录/
如果SSH端口不是默认的22,需要加-P参数(大写P):
scp -P 2222 /本地路径/文件名.zip root@服务器IP:/目标目录/
上传整个目录加上-r参数:
scp -r /本地路径/文件夹名 root@服务器IP:/目标目录/
从服务器把文件拉回本地,把路径顺序反过来:
scp root@服务器IP:/远程路径/文件名.zip /本地保存目录/
rsync增量同步大文件
如果要传几百GB的数据,或者目录里文件反复更新,rsync比scp更实用,它支持断点续传和差量传输。
常用写法:
rsync -avz --progress /本地目录/ root@服务器IP:/目标目录/
参数说明:
-a:归档模式,保留权限、时间戳等信息-v:显示详细输出-z:传输时压缩,节省带宽--progress:显示进度条- 指定端口需加
-e "ssh -p 端口号"
| 场景 | scp | rsync |
|---|---|---|
| 首次传输大量文件 | 全量复制,速度尚可 | 全量复制,压缩后更快 |
| 再次传输改动的文件 | 全部重传 | 只传差异部分 |
| 断点续传 | 不支持 | 支持 |
| 语法难度 | 简单 | 中等等 |
多数情况下,单个文件小于1GB优先用scp,超过这个量级或者需要反复同步,直接用rsync更划算。
windows上传文件到linux服务器的几种常用方式
Windows用户不熟悉命令行时,图形化工具更直观。
WinSCP图形化拖拽
WinSCP是免费开源的SFTP客户端,适合文件量不大、需要频繁浏览目录的场景,打开软件后填写IP、用户名、密码即可连接,连接后左右两个窗口,左边是本地文件,右边是服务器目录,直接拖拽就能上传。
Xshell结合rz/sz命令
很多运维人员习惯用Xshell远程连接服务器,这时安装lrzsz工具后,就能用rz命令从本地选择文件上传:
yum install -y lrzsz rz
sz命令则把服务器文件下载到本地指定目录:
sz 文件名
这种方式对办公电脑友好,不需要额外打开一个传输工具,直接在终端里弹出文件选择框。
Windows PowerShell原生scp
在Windows 10及以上版本中,打开PowerShell直接使用scp命令即可:
scp C:\本地路径\文件.zip root@服务器IP:/目标目录/
通过宝塔面板网页上传
如果你用的是宝塔面板管理的服务器,登录后台后在文件管理里点“上传”,会弹出文件选择窗口,支持批量上传,最贴近日常操作习惯。上传超过100MB的文件,面板Web端容易超时,改用文件夹压缩后用scp或rsync更稳。
上传文件到linux服务器后权限不对怎么办
文件传完了,网页打开却是403,或者程序启动时报权限错误,这属于上传后的权限问题,严格来说不是传输本身的问题,但相当一部分人栽在这里。
权限拒绝Permission denied
先用ls -l查看文件权限:
ls -l 文件名
如果归属或权限不对,用chmod和chown修复:
chmod 644 文件名 chown www:www 文件名
连接超时或端口不通
scp命令卡住或者报“Connection timed out”,先检查两点:服务器防火墙是否放行端口,云平台安全组是否放行端口,以简米云为例,需要登录控制台,在ECS实例的安全组规则里添加入方向的22端口。
大文件传一半断开
网络不稳定或跳板机限制会导致传输中断,解决办法是改用rsync,因为它在断点处继续传输,不用重新开始,命令加--partial保留部分传输的文件,中断后重新执行同样的命令即可恢复。
从服务器下载文件到本地需注意什么
有个容易混淆的点:上传和下载,本质是同一个命令的两个方向,把scp命令里的路径顺序对调,就是从服务器下载到本地,Windows用户反向使用WinSCP时,只需要把右侧服务器文件拖到左侧本地窗口即可。
下载场景同样推荐rsync应对大文件,如果只是临时下载一个几百KB的配置,scp足够,没必要装额外工具。
常见问题解答
怎么上传文件到linux服务器最快?
单文件或少量文件用scp命令最快,因为它不需要额外配置,直接配合SSH服务就能用,整套流程是:打开本地终端 → 执行scp 文件名 用户名@IP:目标路径 → 输入密码 → 等待进度完成。
scp和winscp哪个更适合日常使用?
scp是命令行工具,存在于所有类Unix系统,适合远程终端操作和脚本自动化;WinSCP是图形化软件,适合Windows桌面环境下逐文件管理,两者传输本质相同,都基于SSH加密。
服务器文件如何批量下载到本地?
用rsync最合适,命令格式为rsync -avz 用户名@服务器IP:/远程目录/ /本地目录/,配合--progress参数可以看到每个文件的传输进度,中途断线后重新执行即可恢复,服务器上的文件是否删除由你本地指定,不会影响原文件。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/784711.html


