我们正在工作区设置 Web 服务器。同时,我们计划安装 FTP 服务器,但我不知道该使用哪种协议——FTP、SFTP 还是 FTPS。我四处搜索,试图看看哪种协议提供什么,偶然发现了类似这样的文章这,但我拿不定主意。只需要偶尔进行简单的文件传输;但是,由于文件服务器旨在通过互联网访问,因此安全性是一个问题。
哪种协议最适合我的使用?为什么?
答案1
因此,目前两个明智的选择是:
WebDAV,在服务器端表现不错,也适用于 Linux 和 Mac OS 客户端,但是内置的 Windows 客户端存在问题。
SCP/SFTP,非常简单,因为您可能有 ssh,GUI 客户端很容易获得(例如 FileZilla)
尽管 FTP 仍然存在,但我确实会避免基于它设置任何新的东西。
答案2
我认为简短的答案是使用支持所有三种协议的 FTP 服务器。您可能希望避免允许 FTP,因为您提到安全性是主要考虑因素,但 SSH2 文件传输协议 (SFTP) 和 TLS/SSL 上的 FTP (FTPS) 都被视为安全的文件传输协议。
SFTP 绝对是当今的热门选择,因为它的安全模型强大,设置比传统 FTP 和 FTPS 更简单。SFTP 也比 FTP 更符合防火墙规范,因为它只需要一个端口即可建立连接并执行文件操作。
FTP 和 FTPS 需要多个端口(一个端口用于发出命令,另一个端口用于每个目录列表或文件传输)才能完成 SFTP 用一个端口即可完成的相同任务。在许多环境中,设置大量端口转发的要求可能是一个问题,并且会使故障排除变得非常困难。但是,FTP 和 FTPS 的存在时间比 SFTP 长得多,并且仍有许多设备和客户端仅支持 FTPS。
在安全性方面,SFTP 和 FTPS 协议都被认为是安全的。FTPS 需要打开多个端口,这可以看作是一种安全问题,但 SFTP 协议本身并不比 FTPS 协议更安全。
我认为 FTPS 相对于 SFTP 的唯一真正优势是性能。SFTP 运行在比 FTPS 更强大和通用的协议上,这种强大性对性能有显著影响。SFTP 的开销要大得多,因为它运行在 SSH2 协议上,而且 SFTP 实现了自己的握手机制。如果您想要尽可能高的传输速度,那么 FTPS 是您的不二之选。
总而言之,尝试支持所有这 3 个。大多数现代 FTP 服务器已经支持 FTP、FTPS 和 SFTP。
答案3
任何对一些数字感兴趣的人,以下是我在本地网络上运行一些基准测试的结果。SMB 2.1 性能约为 112 MB/s
机器:Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz/8GB ram/千兆本地网络
FTP Mode MB/s CPU Usage/APP Encrypted
-------------------------------------------------------------
FTP Transfer rate: 120 40.9 proftpd No
FTPS (SSL) Transfer Rate: 55 99.8% proftpd Yes
SFTP Transfer Rate: 30 100% sshd Yes
Putty SSH Tunnel, (Raw) FTP: 32 100% sshd Yes
答案4
我同意 Ryan 的观点。如果只有有限数量的人使用服务器,则使用 SFTP。如果服务器对公众更加开放,我只会提供 FTPES(通过显式 SSL 的两个通道 FTP)作为唯一选择。FTPES 在两个通道上都是安全的(如果服务器设置正确),无论是发送 FTP 用户名和密码还是传输数据。甚至不要考虑只使用 FTP。说得够多了。
但是再说一次,如果基本上只有 SFTP 就可以了。