当前位置:首页>Linux>Linux如何高效传输文件?

Linux如何高效传输文件?

  • 2026-09-14 22:38:46
Linux如何高效传输文件?

做运维、写代码的小伙伴,和Linux服务器打交道时,文件传输绝对是绕不开的高频操作。面对庞大的日志、代码包或配置文件,如何安全、高效地完成搬运?

别再反复折腾了。你的“传文件神器”,其实系统早已自带——那就是SCP。它基于SSH协议,传输全程加密,无需任何复杂配置。无论是单个文件还是整个目录,无论是本地上传还是跨服务器远程搬运,一条命令即可轻松搞定,稳定又高效。

今天这篇,就把SCP传输的核心用法、避坑技巧、进阶操作一次性讲透,命令全部整理好,复制就能用,新手也能零失败上手,收藏这一篇,再也不用到处查教程!

核心用法:3种场景,覆盖99%日常需求

先统一说明:以下示例中,「服务器用户名」默认用root,「服务器IP」用192.168.3.237(替换成你的服务器真实IP),「文件路径」替换成自己的实际路径即可。

场景1:本地电脑文件 → Linux服务器

比如:把本地电脑的脚本、配置文件,上传到CentOS7服务器指定目录。

  • 命令格式(复制替换):

scp 本地文件路径 服务器用户名@服务器IP:远程目标路径
  • 实操示例:

把windows本地「D:\Desktop\ceshi.txt」文件,上传到IP为192.168.3.237的服务器,存到「/root」目录下:

scp D:\Desktop\ceshi.txt root@192.168.3.237:/root/

操作细节:

1.执行命令后,会提示输入「服务器密码」,输入正确后自动开始传输,传输完成会显示进度和耗时;

2.远程目标路径末尾加「/」,表示把文件传到该目录下;不加「/」,表示给文件重命名(比如scp D:\Desktop\ceshi.txt root@192.168.3.237:/root/new.sh,上传后文件名变为new.sh)。

场景2:Linux服务器文件 →本地电脑

比如:把CentOS7服务器上的日志文件、备份文件,下载到本地windows电脑查看。

  • 命令格式(和场景1相反,重点记!):

scp 服务器用户名@服务器IP:远程文件路径 本地目标路径
  • 实操示例:

把192.168.3.237服务器上「/root/anaconda-ks.cfg 」文件,下载到本地「D:\Desktop\ceshi」目录下:

scp root@192.168.3.237:/root/anaconda-ks.cfg D:\Desktop\ceshi

小技巧:如果不知道远程服务器上的文件路径,可以先通过SSH连接服务器(ssh root@192.168.3.237),用pwd命令找到文件路径,再复制到SCP命令中。

场景3:Linux服务器A → Linux服务器B

比如:两台CentOS7服务器之间互传大文件,无需经过本地电脑,直接传输,效率翻倍(适合大文件、多文件传输)。

  • 命令格式:

scp 服务器A文件路径 服务器B用户名@服务器BIP:服务器B目标路径
  • 实操示例:

把服务器A(192.168.3.237)上「/root/extundelete-0.2.4.tar」压缩文件,传到服务器B(192.168.3.184)的「/root」目录下:

scp /root/extundelete-0.2.4.tar.bz2 root@192.168.3.184:/root/

可以看到文件已经传输过去了。

高频技巧:这3个参数,能解决80%的问题

掌握基础用法后,加上这3个常用参数,能让SCP传输更高效、更省心,新手必记!

1.传输整个目录(-r 参数)

默认SCP只能传单个文件,要传整个目录(比如多个脚本、多个日志文件),加上-r(递归传输)参数即可。

  • 示例(本地目录→远程):

把本地ceshi目录及里面所有文件,全部上传到服务器/root目录

scp -r D:\Desktop\ceshi root@192.168.3.237:/root/

2.自定义SSH端口(-P 参数)

很多服务器为了安全,会修改SSH默认端口(默认22端口),此时直接用SCP会报错「连接超时」,加上-P(大写P,重点区分小写p)参数,指定自定义端口即可。

  • 示例(SSH端口为2222):

scp -P 2222 D:\Desktop\ceshi.txt root@192.168.3.237:/root/

避坑提醒:

是大写-P,不是小写-p!小写-p是保留文件原有权限,很多新手会弄混,记准大写P对应端口。

3.保留文件权限(-p 参数)

传输文件时,默认会丢失原文件的权限(比如执行权限、读写权限),如果需要保留原文件权限(比如脚本文件、配置文件),加上-p(小写)参数即可。

  • 示例:

scp -p D:\Desktop\ceshi.txt root@192.168.3.237:/root/

避坑指南:4个常见报错,快速解决

报错1:Permission denied(权限被拒绝)

  • 原因:

远程服务器的目标路径,没有读写权限(比如普通用户传文件到/root目录,默认无权限)。

  • 解决方法:

① 切换到有权限的目录(比如/home目录);

② 临时给目标路径授权(chmod 777 目标路径),传输完成后可改回原权限(chmod 755 目标路径)。

报错2:Connection timed out(连接超时)

  • 原因:

① 服务器IP输错;

② 服务器SSH端口错误(未指定自定义端口);

③ 服务器防火墙未开放SSH端口。

  • 解决方法:

① 核对服务器IP;

② 确认SSH端口,加上-P 端口号;

③ 开放SSH端口(firewall-cmd --permanent --add-port=22/tcp,然后firewall-cmd --reload)。

报错3:No such file or directory(无此文件或目录)

  • 原因:

本地文件路径,或远程文件路径输错(多打/少打字符、路径写错)。

  • 解决方法:

重新核对文件路径,确保路径正确(可通过ls命令验证路径是否存在)。

报错4:Host key verification failed(主机密钥验证失败)

  • 原因:

之前连接过该服务器,密钥信息被修改,系统拒绝连接。

  • 解决方法:

执行rm -rf ~/.ssh/known_hosts,删除旧的密钥文件,再重新执行SCP命令,按提示确认即可。

长按下图(👇👇)二维码,一键关注“武汉木亘信息技术有限公司”

武汉木亘信息技术有限公司

诚信  共赢  创新  发展

最新文章

随机文章