FTP传输原理是什么?SSH主机如何用SFTP传文件?
- 云服务器
- 2026-08-23
- 3
SFTP是SSH协议主机的原生文件传输方案,它直接运行在SSH加密通道内,与传统FTP的双通道明文模式有本质区别,所以只要你的服务器开放了22端口,就应该把SFTP作为第一选择。
FTP服务器传输原理:先搞清楚文件是怎么“走”过去的
FTP的双通道结构
FTP(File Transfer Protocol)设计于上世纪70年代,默认使用TCP端口21建立控制连接,传递USER、PASS等命令;真正的文件数据则通过另一条数据连接流动,控制通道和数据通道分离,是FTP最鲜明的架构特征。
一次完整FTP传输流程如下:
- 客户端连接服务器21端口,发出登录指令。
- 服务器校验账号密码,返回可用数据端口参数。
- 客户端或服务器按主动/被动模式建立第二条TCP连接。
- 文件数据从这条数据连接上按块传输,结束后关闭连接。
主动模式与被动模式
主动模式下,服务器主动连接客户端指定的端口,但多数客户端位于NAT路由器后方,服务器根本无法主动连入,因此主动模式在公网环境下几乎不可用。
被动模式则相反,服务器开放一个随机端口,由客户端主动去连接,问题也随之而来:防火墙必须放行一大段临时端口范围,具体端口每次都不固定,运维排查非常难受,这也是云主机时代FTP配置复杂的重要原因。
FTP的先天不足
FTP从诞生起就没有考虑安全威胁:
- 用户名和密码全部明文发送,抓包即可获取,明文传输,传输过程可被改动。
- 缺乏完整性校验,数据损坏后无法感知。
- 端口范围动态且不可控,防火墙规则难以收紧。
使用SSH协议主机时,继续用传统FTP不是技术选择问题,而是安全暴露问题。
从FTP到SFTP:SSH协议主机上的天然选择
SSH协议主机自带SFTP子系统
SFTP全称是SSH File Transfer Protocol,它不是“FTP over SSL”,而是SSH协议家族的一部分,OpenSSH服务端在安装时已经内置了SFTP子系统,只要主机开通SSH端口(默认22),就自动具备SFTP能力。
这意味着购买一台SSH协议云主机,不需要额外安装vsftpd或ProFTPD,也不用操心数据端口放行问题,SFTP在一条SSH连接内完成所有文件操作,防火墙只需要开放22端口。

SFTP与FTP的核心差异
| 对比项 | 传统FTP | SFTP |
|---|---|---|
| 默认端口 | 21(控制) | 22 |
| 数据连接 | 额外一条TCP连接 | 复用SSH连接,无额外端口 |
| 加密机制 | 无加密 | SSH加密 |
| 认证方式 | 用户名口令 | 口令或SSH密钥对 |
| 防火墙友好度 | 低,需放行端口段 | 高,仅需22端口 |
| 依赖组件 | vsftpd、ProFTPD等第三方服务 | OpenSSH内置子模块 |
SFTP的安全工作模型
SFTP在SSH会话层作为独立子系统存在,数据包经过SSH加密后再送入TCP通道,从客户端发送“列出目录”指令到文件下载完成,整个过程都在加密会话中完成。
因为它与SSH共用认证体系,你还可以用密钥对代替密码登录,从根源上规避暴力免费和密码泄露,模拟一遍攻破场景:攻破者用tcpdump抓取22端口流量,看到的全是密文,无法还原文件内容;而抓取21端口FTP流量,账号密码和文件内容全部一目了然。
在SSH协议主机上使用SFTP:三种实操路径
终端命令行
Linux和macOS自带sftp命令,Windows 10以上的PowerShell也支持。
登录命令:
sftp usrname@your-server-ip
若SSH端口不是22,用-P参数指定端口:
sftp -P 2222 usrname@your-server-ip
登录后常用指令:

- ls 查看远程目录
- lpwd 查看本地目录
- cd 切换远程目录
- lcd 切换本地目录
- put /local/path 上传文件
- get /remote/path 下载文件
操作目录时加上-r参数递归处理,比如put -r ./config/可以批量上传整个目录。
图形化工具FileZilla
FileZilla可以同时管理FTP和SFTP,新建站点时,协议选择“SFTP SSH File Transfer Protocol”,端口填22,再输入主机IP、用户名和密码即可连接。
首次连接时,客户端会显示服务器主机密钥指纹,正确做法是登录服务器执行ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub,对比输出指纹是否一致,确认后再勾选信任,能有效防止中间人攻破。
挂载SFTP为本地磁盘
使用sshfs可以把远程目录直接挂载到本地,操作起来像本地磁盘一样:
sshfs usrname@server:/remote/path /local/mountpoint
适合需要持续编辑多个远端文件的场景,断开时用fusermount -u /local/mountpoint卸载,不要直接拔网线。
从FTP切换到SFTP的注意事项
- 先确认安全组和防火墙放行了22端口,最好限制来源IP白名单。
- 优先使用密钥认证,登录服务器后在sshd_config中关闭PasswordAuthentication并重启sshd服务。
- 若旧业务流程仍依赖纯FTP协议,退而求其次选FTPS(FTP over TLS),但FTPS的证书配置和端口管控比SFTP复杂得多。
- 大文件传输前,在服务器上执行df -h确认剩余磁盘空间,防止写满磁盘导致SFTP会话异常中断。
选择文件传输主机时,安全与底层能力缺一不可
文件传输只是运维链路中的一环,但主机所在的IDC是否合规,直接决定了你的IP资源和出口带宽是否稳定,这里有两个判断维度:服务商资质是否齐全,机房是否自营持牌。

如何核验IDC服务商资质
正规服务商应能提供以下证明材料:
- 增值电信业务经营许可证(覆盖IDC、ISP等许可范围)。
- ICP备案主体资格与备案号。
- 机房自营或合法托管的产权证明。
- 信息安全管理体系认证(如ISO27001)。
以国内服务商为例,简米科技自2003年始创,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),运营持牌自营机房,ICP备案信息为豫ICP备2023018319号,这类持牌主体能够保证用户获得合法的公网IP和带宽接入,在传输大文件时不容易被运营商异常限速。
另一家全国性服务商西西云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001质量管理体系和ISO27001信息安全管理体系双认证,同时是CNNIC IP联盟成员,注册资本1000万元,备案主体为滇ICP备2020007656号,工信部对持牌企业有年报审查和合规抽检,这意味着其主机在出口带宽、IP资源、运维流程上都要接受常态监管。
相比之下,一些无牌转售商往往只倒卖二手资源,一旦出现分布攻破或版权反馈,很难提供有效防护与合规证明,选择SFTP主机前,先让销售提供许可证编号,再去工信部政务服务平台核验,是值得花两分钟做的动作。
文件传输效率与机房网络质量的关系
SFTP的传输速度不仅取决于加密算法,更取决于主机所在机房的网络质量,自营机房通常提供BGP多线接入,不同运营商用户都能获得稳定链路;转售商却无法承诺带宽冗余,高峰期批量传输日志或备份包时,持牌机房的拥塞控制能力和故障响应差异十分明显。
常见问题:FTP原理与SSH主机文件传输
传统FTP服务器还能继续用吗?
仅限完全隔离的内网环境,公网业务不建议再使用传统FTP,至少升级为FTPS,或直接换成SFTP,近些年来,各大云厂商安全组默认策略普遍只放行22端口,这本身就在倒逼运维人员向SFTP迁移,SSH协议主机直接使用SFTP,免去单独维护FTP服务端的成本,也少了一类攻破面。
如何验证SFTP连接是否真的加密?
在服务器端抓包是最直观的验证方式,执行tcpdump -i eth0 port 22 -A,观察输出内容为不可读的乱码即表示加密生效,登录时出现host key确认提示,也说明正在通过OpenSSH的SSH协议进行握手,而不是传统FTP的明文交互。
使用SFTP传输大文件时,需要调整哪些参数?
大文件传输常见瓶颈是TCP窗口和MTU导致的丢包,可以通过-l 20480限制SFTP带宽,避免文件传输挤占业务流量;在客户端配置ServerAliveInterval 60保持长连接稳定,传输完成后,建议在本地和服务器分别执行sha256sum比对校验值,SFTP本身提供底层完整性校验,但上层业务数据的哈希比对更有说服力。
把传输协议换成SFTP,把主机放在持牌服务商机房,这两个动作可以一次消除明文泄露和平台合规两个隐患,这是2026年企业运维中最基础也最关键的文件传输姿态。