要把安装包发送到云上的Linux服务器,直接用scp命令即可完成上传,这也是运维场景中默认的首选方案。
怎么传文件到云服务器linux?先分清三种场景
动手之前先做选择:文件多大、网络稳不稳、手上有没有终端环境,不同条件对应不同工具,选错了工具,传输过程会非常难受。
小文件场景:scp最省心
安装包体积在几百MB以内,scp就是最优解,它的语法和本地cp高度相似,只是把目标地址换成了“用户名@服务器IP:目录”的形式,执行后输入服务器密码,进度条走完即上传完毕。
大文件或网络不稳场景:rsync更稳
超过1GB的安装包,或者说你的网络存在不稳定性,scp的中断重传机制会让人崩溃,rsync内置断点续传能力,中断后重新运行同一条命令,它会自动对比当前文件状态,跳过已传完的块,继续未完成的部分。
图形化场景:SFTP工具
Windows用户不想碰命令行的话,WinSCP和FileZilla是主流选择,填入服务器IP、用户名、端口22和密码,界面就会以文件列表形式呈现远程目录,直接拖拽即可上传,底层走的是SSH协议,安全级别和scp一致。
linux服务器上传安装包命令:scp与rsync实操细节
命令本身不复杂,但参数写错或者忽略权限,照样会被卡在第一步,下面把核心用法和常见坑位拆开讲。
scp命令的标准写法
基础结构:
scp 本地文件完整路径 用户名@服务器公网IP:服务器目标目录
实际操作示例:
scp /Users/mac/Downloads/nginx-1.24.0.tar.gz root@119.45.118.66:/usr/local/src/
执行时记住三个要点:
- 服务器端的目标目录必须已存在,否则会找不到路径
- SSH端口不是默认的22时,需要加
,注意是大写P-P 端口号
- 建议写公网IP而非内网IP,云环境下的内网IP在本地不可达
rsync断点续传的正确配置
rsync -avzP --partial 本地文件 用户名@服务器IP:目标目录各参数含义对照:
| 参数 | 作用 |
|---|---|
| -a | 归档模式,保留权限、时间戳、属主 |
| -v | 输出传输明细,方便观察进度 |
| -z | 传输时启用压缩,降低带宽占用 |
| -P | 结合–progress与–partial,显示进度并支持断点续传 |
| –partial | 保留部分传输的文件,与-P配合更可靠 |
行业共识认为,rsync在传输单个大文件的可靠性上明显好过scp,尤其在跨境链路或高丢包的环境下,优势一眼可见。
权限不足的排查方式
上传时报 Permission denied,基本逃不出两个原因,一是目标目录对当前用户不可写,换成 /home/用户名 或 /tmp 这类有写权限的目录即可,二是SSH密钥认证失败,检查服务器端 ~/.ssh/authorized_keys 是否包含本地机器的公钥,或者干脆改用密码认证。
便宜的云服务器怎么传文件?先压缩再走流量
低价云服务器通常带宽小、配置低,但这不等于不能高效传文件,核心思路是变薄传输体积,让有限的带宽发挥最大价值。
打包压缩降低传输体积
当安装包由大量小文件构成,比如一套包含几千个配置文件的中间件程序,直接scp会因为频繁的文件握手而变得极慢,先在本地打一个压缩包:
tar -czf app.tar.gz /your/local/app/
往往一个几百兆的目录,打包后只剩几十兆,上传时间缩短一个量级,这对按流量计费的云服务器来说,省下的就是真金白银。
分卷上传绕过单文件限制
部分云厂商的网页文件管理器对单文件大小有限制,利用split命令把大压缩包切成多个小卷:
split -b 400M big_file.tar.gz part_
全部传完后在服务器端合并:
cat part_ > big_file.tar.gz
这种方式绕开了平台限制,也降低了单次传输失败的风险。
对象存储中转更省心
如果云服务器和对象存储在同一地域,把安装包先传到对象存储,再从服务器内网拉取,传输速度甚至比直连scp还快,内网流量通常免费,还能避开公网链路的不稳定因素。
云服务器传输文件慢怎么办?四个排查方向
上传速度卡在几十KB每秒,先从四个方面排查,别急着给服务器下结论。
本地网络上行带宽
家宽上行速率普遍偏低,通常只有下行带宽的四分之一甚至更少,峰值在几十Mbps范围内,换算下来也就是几MB每秒的上传速度,如果传输速度接近这个数字,属于正常现象,基本提不上去。
跨区域链路质量
服务器在海外机房,而你在国内直连,丢包和延迟会显著拉低传输速度,业内人士指出,跨运营商与跨国的链路波动是传输慢的首要因素,此时改用对象存储中转,或者选择绑定同一地域的云主机,效果立竿见影。
云厂商带宽上限
低价活动机型往往带有带宽峰值限制,比如4Mbps或8Mbps,登入控制台查看实例详情中的带宽配置,如果标的是按量计费但峰值很低,上传大文件就只能认栽,这是物理限制,除了升级带宽套餐没有别的办法。
安全组与端口限速
部分运营商对22端口有QoS限速策略,导致scp和rsync偏慢,可以尝试让SFTP服务端监听443端口,或者在安全组中放行其他高位端口,绕开限速策略。
无SSH权限时,怎么发送安装包到云上的linux服务器
如果你拿到的是虚拟主机或容器环境,没有直连SSH的通路,还能通过另两条路子传文件。
云控制台文件管理上传
大部分云厂商的控制台都提供文件管理功能,登录后台,进入文件管理页面,选择本地安装包上传到站点根目录或指定目录,再用网页终端解压即可,注意页面标注的单文件大小限制。
服务器主动拉取安装包
把安装包上传到网盘或对象存储,生成一个公开的直链,然后在服务器上执行:
wget https://你的直链/安装包.zip
只要服务器有外网访问权限就能拉取,这种方式完全不依赖上传通道,也不需要SSH证书,属于应急场景下的兜底方案。
Q&A:发送安装包到云上的linux服务器常见问题
传安装包到一半断开,怎么续传?
用rsync的--partial参数重新执行原命令,它会自动从断点继续,按文件块对比跳过已传完的部分,无需重传整个文件。
scp时提示“No such file or directory”?
检查本地文件路径是否写全,服务器端目标目录是否真实存在,路径中的符号在不同用户下的解释不同,建议全部改为绝对路径。
传到云服务器后压缩包解压报错,是不是传输损坏?
先在本地执行 md5sum 压缩包 得到校验值,传输后在服务器端再执行一次同样的命令,两次值一致证明文件完整,如果值不同,用rsync重传,不要继续用scp硬刚。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/625043.html





