我的 PC 和服务器之间有千兆连接(iperf3 测试显示速度约为 930Mbps),我希望能够尽快传输大文件。服务器上的硬盘通过 USB3 连接,它是 Rock64。使用 ssh(我使用 btrbk 和 ssh)我认为瓶颈可能是 ssh,因为 CPU 使用率高且温度高(约 60C)。我确实禁用了压缩,尽管我认为它默认是禁用的(将其放在 ~/.ssh/config 中)。我最多只能获得 350Mbps 的速度,但波动很大,我认为 Rock64 无法处理那么多数据的密码。过了一会儿,由于某种我不确定的原因,它变得非常慢(不到 1Mbps)。重新启动传输就可以了。(可能与问题无关)。
我需要一个至少能达到 480Mbps 的密码。不过,由于 USB3 的实际速度,你可能可以将这个数字降低一点。不太担心安全性,因为这只是从 PC > 路由器 > 服务器的以太网连接,但无论如何,没有加密或加密较弱都是大材小用。所以最好是能达到上述速度的最安全的密码。
答案1
每个密码都可以支持 480Mbps - 但许多 CPU 无法足够快地执行该密码。因此,您需要的是适合您的 CPU 的足够快的实现。
执行链是
read from disk -> encrypt -> send over network -> decrypt -> write to disk
因此,首先你需要确保,加密确实阻碍了你
nc
以 而不是 ssh开始
nc -l -p 9999 > /path/to/destination/file # on the receiving side
nc -N [ip.of.receiver.pc] 9999 < /path/of/original/file # on the sending side
这会将加密/解密从链中取出,让您了解实际可能的速度。
接下来检查发送方是否对某些密码进行了硬件加速加密。很可能没有,但值得一试。
尝试这个arcfour
密码可能会给你带来希望
答案2
我发现了一个有趣的密码速度博客。它让你了解如何在没有网络的情况下测量密码速度。
for i in `ssh -Q cipher`; do dd if=/dev/zero bs=1M count=100 2> /dev/null \
| ssh -c $i someuser@localhost "(time -p cat) > /dev/null" 2>&1 \
| grep real | awk '{print "'$i': "100 / $2" MB/s" }'; done
因此您实际上可以测量特定硬件上密码的性能。