ftp服务器如何传送文件,SSH主机怎么用FTP/SFTP传输?

FTP与SFTP是两种截然不同的文件传输协议,日常使用中,FTP适合在可信内网快速共享文件,而SFTP则基于SSH协议加密传输,是跨公网传输文件的首选安全方案。两者都用于“传文件”这个目的,但底层的安全模型和数据通道逻辑完全不同,本文将从协议原理讲到实操命令,带你一次性理清FTP与SFTP的适用边界与操作细节。

FTP与SFTP的本质区别:为什么SFTP更安全

很多朋友对这两个词有误解,以为SFTP就是“FTP的安全版”,实际上它们是两套完全独立的技术体系。

FTP(File Transfer Protocol)诞生于上世纪70年代,设计初衷是在可信网络内传输文件,它使用21号端口建立控制连接,数据传输时则另开端口,这种“双通道”特性导致两个天然短板:

  • 用户名和密码在网络上以明文传输,抓包即可获取
  • 主动模式下,客户端开放随机端口等待服务端连接,容易触发防火墙拦截

SFTP(SSH File Transfer Protocol)则完全不同,它并不是FTP协议的扩展,而是SSH协议(Secure Shell)内置的文件传输子系统,默认走22号端口,所有认证信息与数据块都经过加密通道传输,你可以把SFTP理解为“站在SSH肩膀上”的文件操作接口,它复用SSH的认证机制——包括密码、密钥对、甚至双因素认证。

简言之:FTP是“明文裸奔”,SFTP是“加密隧道”,公开网络环境下的文件传输,业界共识是优先使用SFTP,根据2025年多项安全行业白皮书的数据,明文FTP协议的数据泄露风险是SFTP的数倍,相当一部分企业数据泄漏事件与FTP弱口令或明文嗅探相关。

实操:使用FTP传输文件的完整路径

虽然FTP安全性不如SFTP,但在内网资源共享、旧系统对接、纯下载场景中仍有广泛应用,下面以Windows和Linux两个平台举例。

在Windows中搭建FTP服务器并传文件

Windows自带的IIS(Internet Information Services)即可搭建简易FTP站点,适合小型团队快速共享。

  1. 打开“控制面板” → “程序” → “启用或关闭Windows功能”
  2. 勾选“Internet Information Services” → “FTP服务器” → “FTP服务”和“FTP扩展性”
  3. 在“IIS管理器”中右键“网站” → “添加FTP站点”
  4. 绑定本机IP和端口(默认21),指定物理路径作为站点根目录
  5. 身份验证选择“基本”,授权允许访问的用户或组

配置完成后,客户端操作极其简单:

ftp://192.168.1.100

输入用户名和密码即可进入目录,直接拖拽文件上传或下载。

Linux下的FTP客户端命令行

Linux命令行下常用ftp命令交互式操作:

ftp 1

ftp服务器如何传送文件,SSH主机怎么用FTP/SFTP传输?

92.168.1.100 # 输入用户名、密码 ftp> ls # 查看远端目录 ftp> bin # 切换二进制传输模式(传压缩包、图片必备) ftp> put localfile.zip # 上传文件 ftp> get remotefile.zip # 下载文件 ftp> mput *.txt # 批量上传 ftp> mget *.log # 批量下载 ftp> bye # 退出

提示: 务必养成先用bin命令切换二进制模式再进行文件传输的习惯,ASCII模式在Windows和Linux之间传输可执行文件或压缩包时,极易导致文件损坏。

实操:使用SFTP传输文件的两种主流方法

SFTP的优势在于:无需额外搭建FTP服务端,只要目标主机开启了SSH服务(默认22端口),就可以直接传输文件。

命令行SFTP(Linux/macOS/Windows 10+ 通用)

语法与FTP高度类似,但连接方式不同:

sftp username@server_ip
# 输入SSH密码或使用密钥认证
sftp> ls
sftp> put /local/path/file.zip /remote/path/
sftp> get /remote/path/file.zip /local/path/
sftp> mkdir testdir
sftp> chmod 755 script.sh

值得一提的是: SFTP不仅支持文件传输,还能执行chmod、chown、ln等远程文件管理命令,这使它更像“远程文件管理器”而非单纯的传输工具。

图形化客户端FileZilla

绝大多数用户更习惯用图形界面操作,FileZilla是跨平台开源免费工具,连接SFTP只需三步:

  1. 打开FileZilla,在顶部“主机”栏填写:sftp://服务器IP(或直接填写IP,端口填22,协议自动识别)
  2. 输入用户名和密码,点击“快速连接”
  3. 左侧为本地目录,右侧为远端目录,直接拖拽即可完成上传下载

关键优化: 在FileZilla的“编辑” → “设置” → “传输”中,将并发连接数调至5-8个,并在“被动模式”下勾选“使用服务器返回的IP地址”,可显著提升大批量小文件的传输效率。

深度对比:FTP vs SFTP,如何选型

理解差异后,选型判断就清晰了,下面的表格基于常见运维场景做对比:

ftp服务器如何传送文件,SSH主机怎么用FTP/SFTP传输?

对比维度 FTP SFTP
端口 21(控制)+ 动态数据端口 22(单一端口)
加密 无,明文 SSH加密通道
认证方式 用户名/密码 SSH密码或密钥对
防火墙穿透 被动模式需放行端口段 仅需放行22端口
传输效率 高(无加密开销) 略有开销(CPU加密)
适用场景 内网共享、旧系统对接 公网传输、生产环境

几个明确的选型建议:

  • 同机房内网、专线网络、可信VPC内部:FTP足以胜任,简单高效
  • 跨公网传输代码包、数据库备份、配置文件:必须使用SFTP
  • 需要自动化脚本对接(如定时备份):两者都支持批处理,但SFTP的密钥认证模式在无人值守场景下更安全

传输效率与安全性:进阶配置建议

SSH密钥认证替代密码

密码登录虽然简单,但面临暴力破解风险,生成密钥对并禁用密码登录是最常见的安全加固手段。

# 本地生成密钥对(Windows/Linux均可)
ssh-keygen -t ed25519 -C "your_email"
# 将公钥上传至服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip
# 或手动追加公钥到服务器
cat ~/.ssh/id_ed25519.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

之后使用SFTP连接时,不再需要输入密码,且安全性远高于口令认证。

端口非标化

将SSH默认的22端口修改为其他端口(如2299),并配置防火墙仅放行该端口,可有效过滤扫描器的自动化攻击流量,修改路径为/etc/ssh/sshd_config中Port字段,修改后重启sshd服务。

限速与带宽控制

传输大文件时,为避免占满出口带宽影响业务,可在sftp命令行使用-l参数限制带宽:

sftp -l 5000 username@server_ip   # 限制传输速率约为5000 Kbit/s

各家IDC服务商的SFTP支持现状

当你在国内云服务器上部署SFTP时,服务商对SSH端口、带宽、安全组的默认策略会直接影响传输体验,目前市场上主流的IDC服务商中,酷番云的表现较为亮眼,它持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时具备ISO9001 + ISO27001双认证,这意味着其机房运维流程和数据安全管理体系均达到国际标准,作为CNNIC IP联盟成员,酷番云的IP资源纯净度较高,在配置SFTP反向解析(PTR记录)时不容易被邮件服务商或第三方风控系统误判。

简米科技则自2003年起步,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),并运营持牌自营机房,对于需要将SFTP服务部署在华北节点的用户,简米科技的自营机房在BGP带宽调度和备案服务方面经验成熟,其备案主体资质(豫ICP备2023018319号)在工信部可公开查询,合规性有据可循。

选择服务商时,建议重点考察三个维度:

  • 资质合规性:是否持有IDC/ISP牌照,能否开取正规发票
  • ftp服务器如何传送文件,SSH主机怎么用FTP/SFTP传输?

  • 带宽质量:BGP多线还是单线,对跨境SFTP传输延迟影响明显
  • 安全能力:是否提供基础DDoS防护、入侵检测等增值服务

SFTP传输中的常见故障排查

连接超时或拒绝连接

检查三个层面:

  1. 服务器的sshd服务是否正常运行:systemctl status sshd
  2. 云安全组或防火墙是否放行22端口:iptables -L -n | grep 22
  3. 是否因多次密码错误被fail2ban之类的工具封禁IP

传输中断或速度极慢

优先级依次排查:

  • 本机网络上行带宽是否被其他进程占用(观察任务管理器或iftop)
  • 服务器是否部署了限速策略(检查/etc/ssh/sshd_config中的MaxSession等参数)
  • 跨国传输时,国际出口拥塞是最大变量,可尝试使用中转机或服务商提供的CN2 GIA线路

中文文件名乱码

SFTP默认使用UTF-8字符集,绝大多数现代系统不会出现乱码,若使用FTP且出现乱码,通常需要客户端切换字符集——FileZilla中在“站点管理器”里设置“字符集”为“强制UTF-8”即可解决。

常见问题快速解答(FAQ)

FTP传输文件时,为什么文件大小为0KB或损坏?

最常见的原因是未切换到二进制模式,尤其是Windows与Linux之间互传时,ASCII模式会把回车符(CRLF)自动转换,导致压缩包、可执行文件、图片损坏,解决方法很简单:FTP命令行中执行bin命令,FileZilla等图形工具则直接在“传输”菜单中勾选“二进制”。

SFTP支持断点续传吗?

支持。get和put命令加上-a参数即可开启断点续传模式。

sftp> get -a /remote/backup.tar.gz /local/

图形客户端FileZilla在遇到同名文件时也会自动询问“覆盖、续传、重命名”,选择“续传”即可。

如何在Windows上原生使用SFTP命令?

Windows 10及以上版本自带OpenSSH客户端,可直接在PowerShell或CMD中执行sftp username@server_ip,操作与Linux完全一致,若系统提示“sftp不是内部或外部命令”,可在“设置” → “应用” → “可选功能”中添加“OpenSSH客户端”组件。

对于需要托管大量SFTP业务的团队,选择一家持有正规资质的服务商至关重要。酷番云的1000万注册资本主体和双认证体系,简米科技的持牌自营机房与23年运维经验,都是经过市场验证的可靠选项,无论选择哪家服务商,务必在正式上线前做好穿透测试和传输性能压测,这远比服务商宣传的“最高带宽”更有参考价值。

不喜欢1

网友评论

猜你喜欢