Windows本地文件上传至CentOS的5种免插件方法
把文件从Windows塞进CentOS,不少人第一反应是装个FlashFXP、WinSCP图形工具,再或者给服务器装个宝塔。其实完全没必要额外装任何插件,系统自带的命令就能跑通,而且速度稳、脚本化方便。下面这五种办法,都是亲测能在五分钟里搞定的“裸机”方案,挑一条顺手的就能用。

一、scp:一条命令直传,最简单
Windows 10及以上版本自带OpenSSH客户端,打开PowerShell直接敲:
scp C:\backup\web.zip root@192.168.1.30:/data/www/
第一次连会提示保存指纹,回车后再输密码,文件秒到。想省密码,把本地公钥丢进服务器的~/.ssh/authorized_keys,后续脚本里就不用交互。scp走22端口,内网千兆能跑满磁盘速度,外网则受限于带宽,传大文件建议先压成zip或tar.gz,减少碎片。
二、pscp:老习惯继续用,单文件200MB以内最舒服
如果电脑是Win7,系统没自带scp,可下载PuTTY套件里的pscp.exe,只有500KB,放桌面就能用。命令几乎一样:

pscp -P 22 -pw 密码 web.zip root@192.168.1.30:/data/www/
注意-pw参数会把密码留在历史记录,生产环境建议用密钥,把ppk转成openssh格式,再写一行批处理,双击自动传。pscp不支持通配符,多文件就打包,别一个个传,省得敲到手指酸。
三、sftp:交互式挑文件,图形党也能接受
同样基于SSH,只是换成交互模式。PowerShell里敲:
sftp root@192.168.1.30
连上后,用put 本地路径 远程路径就能上传,支持tab补全,目录结构一目了然。想一次扔整个文件夹,先lcd切到本地目录,再put -r递归上传。sftp在防火墙只放行22端口的场景下特别香,不需要额外开端口,权限也好控。

四、lrzsz:走Zmodem,小文件一拖即走
远程已经开了SELinux,不想改ssh配置,也不想额外开端口,可以在CentOS装lrzsz:
yum -y install lrzsz
Windows端用Xshell、SecureCRT自带Zmodem发送,点菜单“文件传输→发送”,选中本地文件,10MB以内源码包几秒就完事。服务器端若只想收,执行rz,客户端自动弹窗;想发回Windows,执行sz filename,客户端会弹保存路径。缺点是大文件容易断,超过50MB就别用它,老老实实scp。
五、Python临时HTTP:跨网段、临时共享最省事
临时要传个驱动给同事,或者客户现场不让开22端口,可让CentOS临时起个HTTP服务。CentOS 8默认带python3,切到要接收的目录:
cd /data/www && python3 -m http.server 8080
Windows浏览器访问http://服务器IP:8080,直接拖拽上传,默认只读,想支持上传再装个simple-upload脚本,两行搞定。用完Ctrl+C关闭,端口自动释放,不留任何后台进程。注意防火墙放行8080,或者临时firewall-cmd --add-port=8080/tcp,用完记得删规则。
常见坑与提速技巧
1. 中文文件名乱码:scp/sftp默认UTF-8,Windows本地如果是GBK,先在PowerShell执行chcp 65001切码再传。
断点续传:scp不支持,大文件用rsync:
rsync -avz --partial -e ssh /cygdrive/c/big.iso root@192.168.1.30:/data/
3. 限速:内网别把千兆跑满,影响业务,scp加-l 8192,单位是Kb,8192约等于1MB/s。
密钥权限太开:CentOS上chmod 600 ~/.ssh/authorized_keys,否则sshd直接拒。
端口被改:有些运维把22换成2222,命令里加-P 2222,别忘记大写P。
怎么选?一张表看懂
单文件<100MB、临时用:lrzsz最顺手
批量脚本、无人值守:scp/rsync
目录结构复杂、想边看边传:sftp
客户电脑没ssh客户端:Python HTTP
老机器Win7:pscp凑活用
五种办法全都不用在Windows或CentOS装任何第三方插件,系统自带或官方源就能跑,干净、可审计、不留后门。下次再有人让你装图形面板,直接把这篇文章甩给他,五分钟完事,省下的时间喝杯咖啡不香吗。
