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