我希望我的 ssh 隧道实现最大程度的压缩,因为我使用的是拨号线路;)
在手册页中可以看到:
CompressionLevel .....值的含义与 gzip(1) 中相同。请注意,此选项仅适用于协议版本 1。
如果我想要最大压缩率并且使用 ssh 版本 2 该怎么办?
如何知道我正在使用的协议版本?
答案1
要了解 ssh 的协议版本,您可以-v
在 ssh 命令中包含选项。
要请求压缩,您可以使用-C
选项。即使对于协议版本 2,这也应该有效。
答案2
根据您的使用情况,您可能需要利用管道来实现某些流的更高压缩级别。
ssh ${SSH_USER}@${SSH_HOST} "
echo 'string to be compressed' | gzip -9
" | zcat | echo -
上面的例子在远程端压缩字符串/流(gzip
)并在本地端接收时解压缩它(zcat
)。
注意 ssh 的压缩是离开取决于意图。仅使用管道的压缩力。
您也可以使用其他压缩工具,例如bz2
或xz
。请考虑它们各自的性能影响。
笔记:看来,如果压缩使用非常慢的算法,流就无法及时传送,并且连接会因错误而“关闭”。