我有一个运行 Ubuntu 10.04 的 VPS,我想在上面模拟网络延迟。它看起来tc
就是我想要使用的,我从此处的示例中提取了此命令:http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
# tc qdisc add dev eth0 root netem delay 100ms
如果我运行此命令,我会收到以下错误消息:
$ sudo tc qdisc add dev eth0 root netem delay 100ms
RTNETLINK answers: No such file or directory
我怀疑我可能遗漏了使此命令起作用的任何东西。搜索让我相信可能需要内核模块,但我不确定。我lsmod
在机器上运行了它,但结果为空。
所以,我很困惑。我该如何让模拟工作?
答案1
要检查netem
模块是否确实安装,请运行:
modinfo sch_netem
您应该会看到有关其安装位置和其他详细信息的信息。如果您收到类似“modinfo:错误:未找到模块 sch_netem”的错误,则可能未安装,除非您刚刚安装了它,并且当前运行的内核与您安装它的内核不同 - 在这种情况下,只需重新启动,它就会显示出来。
在某些 Linux 发行版中,它netem
似乎是作为正常安装的一部分安装的(例如 Ubuntu-20),但在其他发行版中,你需要将其作为额外软件包的一部分安装,例如 Centos
sudo yum install kernel-modules-extra
答案2
VPS 映像缺少“常规”安装中的内容(例如,在这种环境中通常不需要的许多命令)是很正常的。如果您需要其中没有的内容,请按照常规安装过程操作。