WinSCP是目前Windows环境连接Linux服务器管理文件最靠谱的免费工具,对个人站长和小团队来说,没必要花钱买商业FTP客户端,直接用它就够了。
我用WinSCP管理服务器文件已经有挺多年了,陆陆续续换过好几款类似软件,最后留在硬盘里的还是它,下面把我真实的使用感受、踩过的坑和一些能提高效率的操作习惯整理出来,希望能给正在纠结选哪款工具的朋友一点参考。
为什么我长期只保留WinSCP这款工具
很多人一听WinSCP是免费软件就先怀疑功能缩水,实际上它是开源项目,最早在2000年左右就发布了,一直更新到现在,稳定性经历了大量服务器管理员的检验。
WinSCP支持SFTP、SCP、FTP、FTPS、WebDAV五种协议,这意味着不管你的服务器是Linux、Windows还是NAS设备,它基本都通吃,我自己的服务器全部走SFTP协议,也就是SSH的22端口,加密传输比传统FTP安全得多,密码和文件内容不会明文暴露在网络上。
另一个让我离不开它的原因是断点续传,上传一个很大的压缩包中断了,不需要重新开始,WinSCP会自动从断掉的位置继续,网页源码文件特别多的时候这个功能价值很大,我能安心地边写代码边同步到服务器上。
还有个细节我很喜欢,就是它和Windows资源管理器集成的很好,WinSCP提供了类似资源管理器的双栏界面,也能直接拖拽文件到本地目录,更实用的是,右键本地文件能直接选择“上传”,右键服务器文件能直接选择“下载或编辑”,整个操作逻辑非常符合Windows用户习惯,学习成本几乎为零。
WinSCP和Xftp哪个好用
这是很多人第一次接触WinSCP时最先问的问题,Xftp也是业内很出名的SFTP客户端,它和Xshell出自同一家公司,界面观感更现代,我身边也有不少人用,但结合我自己的使用体验和论坛里普遍反馈来看,WinSCP有几个实际优势更打动我。
免费程度不同,WinSCP对个人和商业用户都完全免费,没有任何功能限制弹窗,Xftp虽然有家庭版免费授权,但家庭版限定了功能范围,商业使用需要付费订阅,开源vs商业,对预算敏感的个人站长来说差距不算小。
功能深度,WinSCP内置了一个非常强的命令终端,在文件管理界面里可以直接输入命令行操作,不需要再装个PuTTY单独管理,Xftp更偏向纯文件传输,要执行命令得另外开Xshell。
再就是资源占用,WinSCP的安装包体积非常小,运行起来内存占用只有几十MB,Xftp安装体积偏大,打开速度也稍慢一些,我用一台老笔记本测试过,这个差距体感明显。
从实际运维场景来看,WinSCP不仅在传输功能上不比Xftp弱,还在任务自动化、断线重连、目录对比同步这些细节上做得更到位,如果你是普通Web开发者、站长,我更建议直接用WinSCP,下面用表格呈现两者的主要区别:
| 对比项 | WinSCP | Xftp |
| 价格 | 完全免费,无功能限制 | 家庭版免费,商业版收费 |
| 支持协议 | SFTP、SCP、FTP、WebDAV | SFTP、FTP、FTPS |
| 内置命令行 | 支持,无需额外工具 | 不支持 |
| 断点续传 | 支持且稳定 | 支持 |
| 自动化脚本 | 支持批处理脚本,可定时任务 | 不支持 |
| 远程编辑 | 支持,集成路径自动保存回传 | 支持 |
| 适用人群 | 个人站长、开发者、运维 | 偏向图形界面重度用户 |
综合结论:WinSCP更符合长期、日常、多场景的服务器文件管理需求,Xftp的界面更现代吸引人,但功能完整度和性价比都不如WinSCP。
WinSCP上传文件到服务器实操步骤
这里以最常见的场景Windows电脑连接简米云或酷番云的Linux服务器为例,一步步演示怎么用。
下载和安装核心要注意什么
去WinSCP官网下载安装包,选择安装版或便携版都可以,安装版适合作为主力工具长期使用,会集成到右键菜单;便携版放U盘里,去客户现场或临时处理服务器问题时很方便。
安装时有一个步骤是选择界面风格,新手选“Windows资源管理器风格”即可,习惯双栏独立窗口的选“Commander风格”,也可以稍后在设置里随意切换。
配置站点连接信息和保存密码
打开WinSCP,主界面会弹出“登录”窗口,填写三要素:
- 主机名:服务器公网IP或域名
- 端口:SFTP默认22,FTP默认21
- 用户名和密码:服务器系统账号
建议勾选“保存密码”,下次连接直接双击站点就能登录,如果你的服务器改过SSH端口,记得在这里改成实际端口,不然一直连接失败。
点击“登录”后,如果弹出主机密钥警告,这是正常现象,选择“是”或“更新”即可,系统会把这台服务器记录为可信主机。
上传下载和直接编辑文件
连接成功后会看到左右两个窗口,左边是本地文件,右边是服务器文件,这种双栏设计查看文件位置非常清楚。
上传文件直接把左边文件拖到右边就行,或者选中文件按F5,下载是反过来,选中右边文件拖到左边,或者按F6。
重点说说
远程编辑,右键点击服务器上的一个PHP或JS文件,选择“编辑”,WinSCP会调用本地默认文本编辑器打开它,改完保存后自动弹窗询问是否上传回服务器,这对排查服务器上的临时bug很有用,不用下载再上传,一步到位。
网站源码没法只在服务器上操作,我通常用WinSCP把远程网站根目录整个拖到本地,改完再同步上去,右键右侧窗口的网站根目录,选择“下载”,本地目录选好,它会按原结构完整保留。
遇到权限不足怎么办
上传文件时提示“Permission denied”很常见,这种情况不必惊慌,只是没有写入权限。
先用命令行登录服务器,执行:
sudo chown -R www:www /var/www/html sudo chmod -R 755 /var/www/html
这两句把网站目录的拥有者改成www用户,权限设为755(目录可读可执行,文件可读),改完再用WinSCP重新连接,基本就解决上传权限问题了,如果网站运行用户是nginx或其它名字,把www换成对应用户名就行。
WinSCP和FileZilla哪个好用,怎么选
不少用过FileZilla的朋友也会拿它和WinSCP对比,FileZilla同样免费,覆盖面也挺广,但两者的适用场景有明显差别。
从连接性能来说,WinSCP的SFTP连接稳定性更好,用FileZilla传大量小文件时偶尔会卡住或报错,WinSCP在这方面处理得更从容。
从功能范围来说,WinSCP内置了命令行终端和任务脚本功能,FileZilla则基本只做传输,如果你需要在传输文件之外顺手看下服务器状态、跑几条命令,WinSCP明显更方便,不用再开着另一个远程工具。
但从社区支持和跨平台角度看,FileZilla支持macOS和Linux,WinSCP主要面向Windows,如果你是macOS用户,就得用FileZilla或者其他工具,WinSCP在Mac上没有官方版本。
我的结论是:在Windows环境下,WinSCP在文件管理完整度、命令集成交互、稳定性这三个维度上都比FileZilla更贴合实际运维场景,FileZilla更适合需要跨平台使用且对命令行没有要求的用户。
WinSCP连接服务器失败的常见场景和解决办法
实际使用中,连接失败是最常遇到的问题,我遇到的概率最高的情况基本就这三类。
密码正确但提示拒绝访问
这大概率是SSH服务本身配置了禁止密码登录,现在云服务商默认安全策略下,很多服务器创建时只允许密钥登录。
解决方法:在云服务商控制台用VNC或workbench登录服务器,编辑SSH配置文件:
sudo vim /etc/ssh/sshd_config
找到PasswordAuthentication这一行,把值改成yes,然后重启SSH服务:
sudo systemctl restart sshd
改完再用WinSCP连接就通畅了,如果担心密码登录安全,可以在WinSCP里配置密钥对登录,用“高级”->“SSH”->“认证”加载私钥文件即可。
端口变了但仍用22连接
很多运维人员为防暴力破解会修改SSH端口,WinSCP登录窗口的端口号默认是22,没改的话连不上,连接时把端口改成服务器实际端口,问题马上解决。
云安全组没有放行端口
登录云控制台,找到“安全组”或“防火墙”,确认是否放行了22端口(或者你自定义的SSH端口),这个点了很多人会忽略,连接超时十有八九就是安全组限制。
把来源地址设为0.0.0/0,协议选TCP,端口填22即可。
几个让文件管理效率翻倍的进阶玩法
基础登录和拖拽上传用熟了之后,WinSCP还有一些操作能让整个工作流更顺畅。
远程目录和本地目录镜像同步
常用“同步”功能,选中远程网站目录,点“同步”菜单,选择方向(远程到本地或本地到远程),再选择“镜像”模式,它会自动比较两边文件差异,只传输有变动的文件,删除多余文件,保持两边完全一致,发布网站更新时,我用镜像模式一次搞定,不用手动一个个覆盖文件。
用批处理脚本做自动备份
WinSCP支持脚本命令,在电脑上写一个.txt文件,写入如下内容:
open sftp://你的账号:你的密码@服务器IP/ -hostkey=""
synchronize local E:backup /var/www/html
exit
保存后把后缀改为.bat,放到WinSCP安装目录下,双击运行即可自动把服务器网站目录同步到本地E盘backup文件夹,再结合Windows任务计划程序,就能实现每天定时备份,不用手动操作。
记住常用目录,减少跳转时间
右键左侧或右侧窗口的目录标签,选择“添加为书签”,每个服务器站点都加多个书签,以后连接后一下就能点到目标目录,不用一层层展开,方便很多。
常见问题
WinSCP传输大文件时频繁断线怎么办
在WinSCP站点设置里,找到“高级”->“连接”,把“超时”时间从默认值调大一些,比如改成120秒,同时检查本地网络和服务器网络稳定性,传输大文件尽量避开高峰时段。
WinSCP连接服务器失败提示“连接被拒绝”是什么原因
一般有两类原因,第一是SSH服务没启动,用云控制台登录服务器执行sudo systemctl start sshd启动服务;第二是防火墙拦截了端口,检查iptables和firewalld规则确认没有阻断连接。
WinSCP如何实现局域网内两台机器之间快速传文件
两台机器都开启SSH服务后,在一台机器上打开WinSCP,连接另一台的IP地址和账号,即可像操作远程服务器一样直接拖拽文件传输,这个场景适用于临时拉取同事电脑上的文件,或者从另一台测试机拿日志数据。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/666085.html





