scp 为什么比 sftp 快那么多?

60 天前
 lysShub

都是上传一个文件到同一机器,在洛杉矶; sftp 平均下来只有 200KB/s, scp 能有 2-3MB/s 。

根据我查的资料,这两个都是基于 ssh 连接的,为什么有那么大差距?

6636 次点击
所在节点    程序员
44 条回复
bestsanmao
60 天前
协议一样 线路一样
速度差别有 10 倍之大
猜测:
首先,你传的文件压缩率比较大 比如文本文件
其次,两个软件 一个开启了压缩一个没有开启
Remember
60 天前
scp 类似 udp ,可靠性低速度快,sftp 相反。
jack778
60 天前
SFTP 上传速度 (200KB/s) 远低于 SCP 上传速度 (2-3MB/s) 在同一机器、相同网络环境下,确实不太寻常。以下是一些可能导致这种差异的原因分析,希望能帮您找到问题所在:

1. 加密算法和开销:

SFTP (基于 SSH 协议) 使用加密传输,默认情况下会协商更强的加密算法,这会带来更高的 CPU 开销,尤其是在处理大量小文件时,加密/解密过程会成为瓶颈。
SCP (基于 SSH 协议的远程复制) 也使用加密,但通常使用更简单的加密算法,例如 AES-128 ,相对 SFTP 来说,加密开销更低。
2. 协议和实现差异:

SFTP 是一个交互式文件传输协议,需要更多的控制信息交互,例如文件列表、权限管理等,这会增加网络传输的负担。
SCP 则更专注于文件复制本身,传输过程更加直接,减少了不必要的交互。
3. 服务器配置:

SFTP 服务器的配置可能会影响传输速度,例如最大连接数、带宽限制、缓存设置等。
SCP 通常依赖于 SSH 服务器的配置,如果 SSH 服务器配置不合理,也可能影响 SCP 的速度。
4. 客户端配置:

SFTP 和 SCP 客户端的配置也可能影响传输速度,例如缓冲区大小、并发连接数等。
5. 网络环境:

虽然您提到是在同一台机器上进行测试,但网络延迟和丢包率仍然可能对传输速度产生影响,尤其是在网络状况不佳的情况下。
建议您尝试以下方法排查问题:

检查 SFTP 服务器的配置: 查看是否有带宽限制、连接数限制等,并尝试调整相关参数。
尝试不同的 SFTP 客户端: 不同的 SFTP 客户端可能使用不同的加密算法和实现方式,尝试使用其他客户端,例如 FileZilla 、WinSCP 等,看看是否能提升速度。
使用 scp -v 或 sftp -v 命令开启详细日志: 分析日志信息,查看是否有错误或警告信息,并尝试根据日志信息调整相关参数。
尝试使用更简单的加密算法: 在 SFTP 客户端中,尝试选择 AES-128 等更简单的加密算法,看看是否能提升速度。
排除网络环境问题: 使用 ping 命令测试网络延迟和丢包率,确保网络环境稳定。
总结:

SFTP 和 SCP 都是基于 SSH 的安全文件传输协议,但它们在协议设计、加密算法、实现方式等方面存在差异,导致在某些情况下,SCP 的速度可能会比 SFTP 更快。通过仔细分析和排查,您可以找到导致 SFTP 速度缓慢的具体原因,并采取相应的措施提升传输速度。
eggt
60 天前
rsync 又比 scp 快的多
Donaldo
60 天前
@jack778 #2 坛子里不允许回复 AI 生成的内容
weijancc
60 天前
这其实是你 sftp 客户端的问题, 如果是多线程上传, 实际上 sftp 是能跑满速的
lysShub
60 天前
@bestsanmao 我那文件大概只能压缩一半
realpg
60 天前
不动系统默认的 openssh-server
scp sftp 都是慢的突破天际 半斤八两
iminto
60 天前
@jack778

ai 回复,一文不值,通篇没有任何有用信息。。。
xqzr
60 天前
@Livid #3 AI
FishBear
60 天前
流传输,多线程,最重要的是多线程,因为多个连接一起发,通常单线程连接比多线程连接慢
sky96111
60 天前
@realpg 冷知识:openssh-server 就是 sftp 的一个实现
realpg
60 天前
@sky96111 #12
额 你看明白我在说什么了吗?
sky96111
60 天前
@realpg 好吧,我理解错了。我以为你打错字了,不动系统的 openssh-server->不如系统的 openssh-server
Livid
60 天前
@xqzr 3 楼的账号已经被彻底 ban 。
realpg
60 天前
@Livid #15
这个要不要先 at 警告一次再 ban 啊
我也算高强度 V2 用户,要不是这个帖子我还真没注意到 V2 加了规则不允许直接发 ai 生成内容
Livid
60 天前
@realpg 这个规则已经执行了超过半年了。这就是为什么你几乎在这里看不到这种 AI 生成的长篇大段的回复,之前这么干的账号都已经被清理了。
Livid
60 天前
@realpg 如果要实现这样先警告 X 次再彻底 ban 的系统,意味着还需要存储和读取一个账号之前是否被警告过的记录,我们没有这样的系统。
vituralfuture
60 天前
ban 得好,贴 AI 回复的占那么大篇幅,我甚至都形成条件反射了,看到开头一句疑似 AI 直接快速下滑
realpg
60 天前
@Livid #18
没必要那么严谨 一般警告一次很难再犯的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1083863

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX