我想通过 3G 连接 ssh 到笔记本电脑(Ubuntu)。因此,我需要估计我将使用多少数据来选择合适的计划。
除了文件传输之外,我可以轻松确定将使用多少数据,ssh 会话通常使用的数据量是多少?是否存在某种关系,例如,在ls
包含 50 个项目的目录上使用会花费我一定量的数据?或者它是否更多地依赖于时间,并且 ssh 会话是否在每个时间间隔内传输一定量的数据,而不管使用情况如何?
答案1
ssh 会话通常使用的量是多少?
我不确定是否存在“典型”
您应该运行tcpdump -ni eth0 -w dump port 22
来捕获所有数据包,然后tcpdump -nX -r dump
查看它们。
是否存在某种关系,例如,在包含 50 个项目的目录上使用 ls 会花费我一定量的数据?
您可以计算一下。粗略估计,每次击键都会生成 4 个数据包(按键、确认、屏幕回显、确认),每个数据包都会产生大量开销。(我的 TCP 转储显示输入 2 个字符需要 500 个字节。)
我的 135 个文件目录列表占用了 2.5k。
使用ssh -C
压缩应该有助于增大文本大小。
或者它是否更多地依赖于时间,并且 ssh 会话是否会在每个时间间隔内传输一定量的数据,而不管使用情况?
是的。TCP 和 SSH 都有保持活动探测。如果你一直保持活动探测,这将是一个问题。再次使用 TCPDump 进行测量。
我的建议是:不要担心,一定要确保你确实有实时的使用反馈。使用几次后,你就能知道距离目标还有多远。
答案2
我有一个类似的设置(远程 Ubuntu 笔记本电脑上的 3G 连接)。
虽然我同意没有“典型”的答案(这取决于您自己的使用情况,以及 sshd/ssh 选项,例如“keepalive”频率、ssh 压缩和其他 ssh 选项),但我已经能够将我的基本空闲 ssh 带宽减少到 0.2 - 0.3MB/小时(相当于 200MB/月)。
我使用 tcpdump 然后使用 wireshark 来可视化和测量我的带宽使用情况(除了使用 ifconfig 的接口的 RX 字节/TX 字节)。
我的设备上的 0.2 - 0.3MB 带宽具有以下选项:TCPKeepAlive no(sshd 服务器,sshd_config)和 ServerAliveInterval 180、ServerAliveCountMax 40、TCPKeepAlive no(在客户端上,即 ssh_config)
希望这对您有帮助,如果没有帮助,那么其他具有类似设置的用户也可以。
答案3
SSH 基本上就是发送命令和屏幕输出。如果你只是执行命令行操作,粗略估计屏幕上每个字符占一个字节。
显然,如果您通过隧道建立 X 会话、通过 SCP 传输文件等,带宽就会增加。
我说这是一个粗略的估计,因为有一些开销。您还可以使用 -C 标志来请求压缩。
答案4
如果你想了解 ssh 使用了多少带宽
使用 iftop 并在 ssh 使用的端口上进行过滤(22)