ssh - 如何测量 SSH 隧道的带宽?

我正在使用 subprocess 在 Linux 上运行带有 OpenSSH 的 SSH 隧道 python 模块。
我想知道从那个 SSH 隧道发送和接收了多少字节。

我怎样才能找到它?

最佳答案

ssh(1)没有为此提供任何机制。操作系统没有为此提供机制。数据包嗅探,例如tcpdump(1)是一个选项,但这可能需要 root 权限,并且仅在 ssh(1) 时才近似。与应用程序外部的远程对等方建立连接。 IPTables Accounting会给你类似的权衡,但可能会比 tcpdump(1) 更少的开销.

如果您不介意非常近似,则可以跟踪您发送到子进程和从子进程读取的所有数据。 ssh(1)将在加密之前压缩数据,因此您可能会高估发送的数据量,但是 ssh(1)在重新键入、 channel 控制、消息真实性等方面也会有一些开销,因此它甚至可能接近“平均”数据。

当然,如果沿途的路由器决定丢弃所有其他数据包,您的 TCP 堆栈将发送两倍的数据,甚至更多。

确实很近似。

https://stackoverflow.com/questions/5470598/

相关文章:

colors - 在 ssh 之前导出 TERM

pdf - 生成的pdf中的文本是反向的

grails - 将视频文件转换为.flv格式

bash - SSH隧道复杂问题

grails - repo.grails.org - 证书过期

svn - 通过SSH的svn diff-结果与Trac不同吗?

grails - Grails从1.3.7升级到3.2.6的路径

unit-testing - 基于 Spock 交互的测试 : too few invocation

grails - 如何在Grails(2.5.5)中自动在前面带有多个大写字母的服务接线

grails - 访问 Grails 全局变量时是否需要使用互斥锁?