user22476690 Asked: 2024-06-12 16:31:41 +0800 CST2024-06-12 16:31:41 +0800 CST 2024-06-12 16:31:41 +0800 CST 如何给我的终端添加延迟? 772 我喜欢在远程设备上使用终端的体验,我输入的内容和屏幕上显示的内容之间存在明显的延迟,因为它迫使我相信我正在采取的行动。有时我想像这样训练我的手指,并在本地设置上复制这种延迟。 我的大部分工作都是使用 GNU screen 的,我认为这应该可以实现。浏览手册时,我只看到在 tty 上启动 screen 时设置波特率的选项,但我无法完全理解它并弄清楚如何在正在运行的会话中修改波特率screen。 是否有人知道如何在开放会话中设置和修改这样的延迟/波特率(使用屏幕或其他方式)? 谢谢。 tty 1 个回答 Voted Best Answer Chris Davies 2024-06-12T18:59:23+08:002024-06-12T18:59:23+08:00 答案和解释来自如何限制 SSH 连接的带宽,但我不认为它是严格的重复。 我首先考虑使用 150 波特的电传打字机(每秒 15 个字符),但是这超时了,命令花费太长时间来ssh建立其凭证并设置连接,而且无论如何考虑传输速度需要高得多才能承载 15cps 的有效负载: ssh -o ProxyCommand='pv -qL 15 | nc %h %p | pv -qL 15' localhost; echo BACK (我应该指出,这echo BACK只是为了标记ssh localhost命令何时完成。这与日常使用不是特别相关,但在测试时非常方便。从这里我将省略它。) 在阅读有关 的更多信息时pv,我通常将其用作传输数据的可视化显示,我记得可以控制现有实例。因此,我们可以ssh全速运行初始实例,然后尝试减少通过 的两个实例允许的带宽pv: ssh -o ProxyCommand='pv -qP p1 | nc %h %p | pv -qP p2' localhost PID 分别写入文件p1和p2。 p1=$(cat p1) p2=$(cat p2) rm -f p1 p2 现在,我们可以对这些过程施加限制,无论是对称的还是非对称的,具体取决于所需的效果。(请记住,这些是协议级别的限制器,而不是您自己体验到的吞吐量。) for p in "$p1" "$p2"; do pv -R "$p" -L 1K; done # 1KB/s ≈ 8Kb/s for p in "$p1" "$p2"; do pv -R "$p" -L 150; done # 150B/s ≈ 1.2Kb/s 不幸的是,这似乎并没有减慢速度,所以我转而研究了cstream。这里我们使用一个字节的缓冲区和每秒 150 个字符的输出速度: man cstream | head -n20 | cstream -b 1 -t 150 将其应用到ssh localhost我们得到以下结果: ssh -o ProxyCommand='cstream -b 1 -t -100 | nc %h %p | cstream -b 1 -t -100' localhost 请注意,建立初始连接最多需要一分钟! 不幸的是,它仍然是块状的,但我认为这cstream可能是要走的路,我可能会在获得替代方法后更新这个答案
答案和解释来自如何限制 SSH 连接的带宽,但我不认为它是严格的重复。
我首先考虑使用 150 波特的电传打字机(每秒 15 个字符),但是这超时了,命令花费太长时间来
ssh
建立其凭证并设置连接,而且无论如何考虑传输速度需要高得多才能承载 15cps 的有效负载:(我应该指出,这
echo BACK
只是为了标记ssh localhost
命令何时完成。这与日常使用不是特别相关,但在测试时非常方便。从这里我将省略它。)在阅读有关 的更多信息时
pv
,我通常将其用作传输数据的可视化显示,我记得可以控制现有实例。因此,我们可以ssh
全速运行初始实例,然后尝试减少通过 的两个实例允许的带宽pv
:PID 分别写入文件
p1
和p2
。现在,我们可以对这些过程施加限制,无论是对称的还是非对称的,具体取决于所需的效果。(请记住,这些是协议级别的限制器,而不是您自己体验到的吞吐量。)
不幸的是,这似乎并没有减慢速度,所以我转而研究了
cstream
。这里我们使用一个字节的缓冲区和每秒 150 个字符的输出速度:将其应用到
ssh localhost
我们得到以下结果:请注意,建立初始连接最多需要一分钟!
不幸的是,它仍然是块状的,但我认为这
cstream
可能是要走的路,我可能会在获得替代方法后更新这个答案