简介
我正在尝试使用终端中的
scp
命令通过 ssh 传输文件。我实现的传输速率很差,远低于我在互联网上看到的传输速率。我需要一些帮助来加快速度。
硬件
软件
网络
测试
我使用以下方法将电影 Mud (Mud.mp4 = 690 MB) 从 Latitude 传输到 XPS 笔记本电脑:
scp 192.168.2.3:~/Videos/Mud.mp4 ~/
传输速率:~1.6 MB/s
scp -c arcfour 192.168.2.3:~/Videos/Mud.mp4 ~/
传输速率:~1.6 MB/s
scp -C -c arcfour 192.168.2.3:~/Videos/Mud.mp4 ~/
传输速率:从约 4.5 MB/s 开始,在约 55 秒内降至约 1.6 MB/s
河豚的结果几乎相似。
问题
使用种子时,我的下载速率通常约为 3.5 MB/s。当然,torrent 使用与 scp 完全不同的协议和方法,但我认为我提出的小型本地设置应该比从谁知道在哪里下载文件表现得更好。此外,我在互联网上看到使用 scp 的结果接近 10 MB/s,即使没有 ssh 的高性能变体:hpn-ssh。
如何使用 scp 加快文件传输速度?
要提高使用 SCP 的文件传输速度,您可以尝试以下建议:
使用更快的密码:
您已经尝试过“arcfour”和“blowfish”密码。另一种选择是使用“[电子邮件受保护]”或“[电子邮件受保护]”通常更快。您可以使用 SCP 的 -c 选项来指定密码。 scp -c [电子邮件受保护] 192.168.2.3:~/Videos/Mud.mp4 ~/ 压缩:
使用压缩来减少通过网络传输的数据量。您可以使用 -C 选项启用压缩。 scp -C 192.168.2.3:~/Videos/Mud.mp4 ~/
并行传输:
并行分割文件和传输部分以利用可用带宽。您可以使用 rsync 等工具以及 --partial 和 --partial-dir 选项来实现此目的。 rsync --partial --partial-dir=.rsync-partial -e ssh 192.168.2.3:~/Videos/Mud.mp4 ~/
增加 SSH 连接窗口大小:
默认 SSH 窗口大小可能不适合您的网络。您可以尝试使用 -o 选项增加窗口大小。
scp -o [电子邮件受保护] -o 压缩=是 -o TCPWindowSize=65535 192.168.2.3:~/Videos/Mud.mp4 ~/
网络分析:
使用 iperf 等工具来分析本地网络性能并识别任何瓶颈。 iperf -s # 在一台机器上 iperf -c 192.168.2.3 # 在另一台机器上 更新 SSH 和 Linux 内核:
确保您使用最新版本的 OpenSSH 和 Linux 内核。更新可能包括性能改进。 考虑使用 SFTP:
如果可能,请考虑使用 SFTP 而不是 SCP。 SFTP 是 SSH 的子系统,可以提供更好的性能。 检查CPU使用率:
在文件传输过程中监控两台机器上的CPU使用情况。如果CPU负载过重,则可能成为瓶颈。 请记住单独测试每个建议以确定具体的改进。此外,网络条件和硬件限制也会影响性能,因此结果可能会有所不同。