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

标签 ssh openssh

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

我怎样才能找到它?

最佳答案

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

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

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

确实非常近似。

关于ssh - 如何测量SSH隧道的带宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470598/

相关文章:

perl - SIGINT 时优雅地关闭 ssh 并退出 net::ssh::perl

ssh - 具有物联网动态设置的 Wireguard

ssh - ESXi 中的 SCP 不起作用

java - connect() 上的 Android SSH 异常 - "KeyFactory ECDSA implementation not found"

Python - Paramiko - 不兼容的 ssh 服务器

ubuntu - 在 ubuntu 14.04 中升级 openSSH 7.2p

ssh - 检查 ssh 连接不工作,但允许 ssh 连接

hadoop - Cygwin SSHD 服务在 Windows 中启动和停止

Docker,如何从命令行主机远程 ssh 到 docker 容器?

windows - 无法使用 Ngrok SSH 到 Windows 机器