Debian7 和 tc qdisc 问题:RTNETLINK 答案:没有这样的文件或目录

Rap*_*ent 5 debian iptables traffic-shaping tc htb

我已经搜索了几天,但找不到解决我的问题的方法。

我有一个运行 Debian 7 的 VPS,我有 root 访问权限。

我正在尝试添加一些流量整形(使用 HTB),所以我尝试输入的第一行是这样的:

tc qdisc add dev tun0 root handle 1: htb default 10
Run Code Online (Sandbox Code Playgroud)

但不知何故它似乎是错误的,因为我收到以下错误:

RTNETLINK answers: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的 ifconfig 显示了一个接口 tun0,所以它存在。无论如何,我也尝试过 venet0 并且失败并出现相同的错误。

当我这样做时,tc qdisc list我只有以下规则:

qdisc pfifo_fast 0: dev tun0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

我真的找不到哪里出了问题。

注意:我升级了包 iproute(根据 Debian 的文档,它是 tc 所在的位置),但它并没有做得更好。

小智 8

RTNETLINK answers: No such file or directory是 tc 说它找不到东西的方式 - 在这种情况下:很可能是 htb 调度程序。测试并确保尝试

modprobe sch_htb
Run Code Online (Sandbox Code Playgroud)

您可能会收到错误消息。

这可能意味着您的 VPS 提供商没有使用 debian 上游的默认内核。他们通常会为您提供一个内核列表供您选择,但我希望所有内核都像正在运行的内核一样瘫痪。您将无法更改他们正在使用的内核,但有可能(虽然不是很大)他们没有禁用内核中的模块加载。在这种情况下,您可以尝试构建和安装 htb 模块。您可以尝试使用ModuleAssistant

如果所有其他方法都失败,请联系客户支持。