在 Linux 上模拟低带宽、高延迟的网络连接

Jus*_* L. 21 networking linux traffic-shaping

我想在我的 Linux 机器上模拟一个高延迟、低带宽的网络连接。

之前已经讨论过限制带宽,例如这里,但我找不到任何解决限制带宽和延迟的帖子。

我可以使用tc. 但我一直无法将这些组合成一个单一的连接。特别是,这里的示例速率控制脚本对我不起作用:

# tc qdisc add dev lo root handle 1:0 netem delay 100ms 
# tc qdisc add dev lo parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
RTNETLINK answers: Operation not supported
Run Code Online (Sandbox Code Playgroud)

如何使用tc或任何其他现成的工具创建低带宽、高延迟的连接?

Jus*_* L. 15

啊哈!如果我们颠倒命令的顺序,它就会起作用。

tc qdisc add dev lo root handle 1: htb default 12 
tc class add dev lo parent 1:1 classid 1:12 htb rate 20kbps ceil 20kbps 
tc qdisc add dev lo parent 1:12 netem delay 1000ms 
Run Code Online (Sandbox Code Playgroud)

https://lists.linux-foundation.org/pipermail/netem/2010-May/001388.html

  • 请注意,带宽限制仅在一个方向(传出)。您必须做额外的工作才能在两个方向上实现(显然使用 ifb)。http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Emulating_wide_area_network_delays (3认同)