2011-03-29 180 views
1

我使用subprocess python模塊在Linux上運行OpenSSH的SSH隧道。 我想知道從該SSH隧道發送和接收的字節數。如何測量SSH隧道的帶寬?

我怎樣才能找到它?

回答

2

ssh(1)對此沒有提供任何機制。操作系統不提供這種機制。用例如數據包嗅探tcpdump(1)是一個選項,但這可能需要root權限,並且只有在ssh(1)與您的應用程序的以外的遠程對等端建立連接時纔會近似。 IPTables Accounting會給你類似的權衡,但可能會比tcpdump(1)少得多。

如果你不介意是非常近似的,你可以跟蹤你發送給你的子進程的所有數據。 ssh(1)會在加密數據前對數據進行壓縮,因此您可能會高估發送的數據量,但ssh(1)也會對重新鍵控,通道控制,消息真實性等產生一定的開銷,因此它可能會接近「平均'數據。當然,如果一個路由器決定丟棄所有其他數據包,你的TCP堆棧將發送兩次數據,也許更多。

確實非常接近。

1

與Python完全無關。查看網絡嗅探器功能,您可以在其中嗅探流量。

0

你可以衡量的東西,如光伏原材料SSH傳輸:

SSH用戶@遠程-t 「貓的/ dev/urandom的」 |您可以嘗試使用/ dev/zero - 但是如果您使用的是ssh壓縮,那麼您可以使用/ var/dev/d得到非常不真實的傳輸速率。)